我发现这个问题在c#和Perl中都有答案,但在本机接口中没有。我觉得这样会有用:
db.theColl。find({_id: ObjectId("4ecbe7f9e8c1c9092c000027")})
查询没有返回任何结果。我找到了4ecbe7f9e8c1c9092c000027通过做db. colll .find()和抓取一个ObjectId。这个集合中有几千个对象。
我在mongodb.org网站上读了所有能找到的页面都没找到。这样做很奇怪吗?这对我来说很正常。
我发现这个问题在c#和Perl中都有答案,但在本机接口中没有。我觉得这样会有用:
db.theColl。find({_id: ObjectId("4ecbe7f9e8c1c9092c000027")})
查询没有返回任何结果。我找到了4ecbe7f9e8c1c9092c000027通过做db. colll .find()和抓取一个ObjectId。这个集合中有几千个对象。
我在mongodb.org网站上读了所有能找到的页面都没找到。这样做很奇怪吗?这对我来说很正常。
当前回答
只是做的事:
db.getCollection('test').find('4ecbe7f9e8c1c9092c000027');
其他回答
要使用Objectid方法,不需要导入它。它已经在mongodb对象上。
var ObjectId = new db.ObjectId('58c85d1b7932a14c7a0a320d'); db.yourCollection。findOne({_id: ObjectId},函数(err, info) { console.log(信息) });
一点也不奇怪,人们总是这样做。确保集合名称是正确的(大小写重要),并且ObjectId是准确的。
文档在这里
> db.test.insert({x: 1})
> db.test.find() // no criteria
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
> db.test.find({"_id" : ObjectId("4ecc05e55dd98a436ddcc47c")}) // explicit
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
> db.test.find(ObjectId("4ecc05e55dd98a436ddcc47c")) // shortcut
{ "_id" : ObjectId("4ecc05e55dd98a436ddcc47c"), "x" : 1 }
甚至更简单,尤其是制表符补全:
db.test.find(ObjectId('4ecc05e55dd98a436ddcc47c'))
Edit:还与findOne命令一起工作以获得更漂亮的输出。
您错过插入双引号。 准确查询是
db.theColl.find( { "_id": ObjectId("4ecbe7f9e8c1c9092c000027") } )
打开mongo CLI后,在正确的数据库上连接和授权。
下面的例子展示了如何从一个名为" products "的集合中找到_id=568c28fffc4be30d44d0398e的文档:
db.products.find({"_id": ObjectId("568c28fffc4be30d44d0398e")})