Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过获取_id引用mongoDB中的属性_Mongodb_Objectid - Fatal编程技术网

通过获取_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中大量使用它们。:)