通过获取_id引用mongoDB中的属性
我有一个集合,其中包含以下文档:通过获取_id引用mongoDB中的属性,mongodb,objectid,Mongodb,Objectid,我有一个集合,其中包含以下文档: collection 1 { _id: ObjectID(), name: foo } 我会获取上述集合的ObjectID并复制到另一个集合的文档中,以便正确引用。我应该简单地做: db.collection1.find({name:"foo"},{_id:1}) 编辑 调用find将返回一个错误消息。游标与其他语言中的迭代器类似。您可以尝试使用next()函数查找光标中的第一个元素,然后获取它的\u id属性,或者使用findOne简化语句: va
collection 1
{
_id: ObjectID(),
name: foo
}
我会获取上述集合的ObjectID并复制到另一个集合的文档中,以便正确引用。我应该简单地做:
db.collection1.find({name:"foo"},{_id:1})
编辑
调用
find
将返回一个错误消息。游标与其他语言中的迭代器类似。您可以尝试使用next()
函数查找光标中的第一个元素,然后获取它的\u id
属性,或者使用findOne
简化语句:
var x = db.collection1.findOne({name:"foo"}, {_id:1});
var id = x._id;
这是假设您正在从该查询返回一个文档。在获取
\u id
属性之前,您可能需要在x
上添加null
检查。我试图通过调用命令var x=db.collection1.find({name:“foo”},{u id:1})获取{u id;x、 _id但我没有得到任何东西我得到了文档,但当我调用x时。_id值为空。你可以在屏幕截图中看到,值已正确保存,但当我调用时。_id我没有得到任何东西。奇怪的是,当您使用findOne
而不是find
时,是否会发生同样的情况?在这种情况下,我会得到ObjectID值。伟大的非常感谢。但是为什么结果不同呢?我在第一段提到过find
返回一个光标
,它类似于与查询匹配的文档列表findOne
有效地执行相同的操作,但会自动为您从列表中拉出第一个文档。仔细阅读游标,您将在Mongo中大量使用它们。:)