在 Mongoose 中保存对象后如何获取 objectID?
var n = new Chat();
n.name = "chat room";
n.save(function(){
//console.log(THE OBJECT ID that I just saved);
});
我想 console.log 我刚刚保存的对象的对象 ID。我该如何在猫鼬中做到这一点?
var n = new Chat();
n.name = "chat room";
n.save(function(){
//console.log(THE OBJECT ID that I just saved);
});
I want to console.log the object id of the object I just saved. How do I do that in Mongoose?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
这对我有用:
我使用的是 mongoose 1.7.2,它工作得很好,只需再次运行它即可确定。
This just worked for me:
I'm on mongoose 1.7.2 and this works just fine, just ran it again to be sure.
Mongo 将完整文档作为回调对象发送,因此您只需从那里获取它即可。
例如
Mongo sends the complete document as a callbackobject so you can simply get it from there only.
for example
您可以手动生成 _id,这样您就不必担心稍后将其拉回。
You can manually generate the _id then you don't have to worry about pulling it back out later.
创建新的对象实例后,您可以立即在 Mongoose 中获取对象 ID,而无需将其保存到数据库中。
我正在 mongoose 4 中使用此代码。您可以在其他版本中尝试。
或者
You can get the object id in Mongoose right after creating a new object instance without having to save it to the database.
I'm using this code work in mongoose 4. You can try it in other versions.
or
其他答案提到添加回调,我更喜欢使用
文档 中的 .then() 示例: 。
Other answers have mentioned adding a callback, I prefer to use .then()
example from the docs:.
好吧,我有这个:
注意第一行中的“post”。使用我的 Mongoose 版本,保存数据后获取 _id 值没有任何问题。
Well, I have this:
Notice the "post" in the first line. With my version of Mongoose, I have no trouble getting the _id value after the data is saved.
实际上,在实例化对象时,ID 应该已经存在,
请在此处检查此答案: https://stackoverflow.com/a/7480248/318380< /a>
Actually the ID should already be there when instantiating the object
Check this answer here: https://stackoverflow.com/a/7480248/318380
根据 Mongoose v5.x 文档:
使用它,类似这样的事情也可以工作:
As per Mongoose v5.x documentation:
Using that, something like this will also work:
使用
save
,您只需要做的是:以防万一有人想知道如何使用
create
获得相同的结果:查看官方文档
With
save
all you just need to do is:Just in case someone is wondering how to get the same result using
create
:Check out the official doc