我发现这个问题在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.test.find(ObjectId('4ecc05e55dd98a436ddcc47c'))
Edit:还与findOne命令一起工作以获得更漂亮的输出。
其他回答
打开mongo CLI后,在正确的数据库上连接和授权。
下面的例子展示了如何从一个名为" products "的集合中找到_id=568c28fffc4be30d44d0398e的文档:
db.products.find({"_id": ObjectId("568c28fffc4be30d44d0398e")})
我只是有这个问题,并完全按照文档做,但它仍然不工作。
查看错误消息,确保没有复制任何特殊字符。我得到了错误
SyntaxError: illegal character @(shell):1:43
当我转到第43号字符时,它只是我的对象ID的开始,在双引号之后,就像我粘贴进来的那样。我把光标放在那里,按退格键,当它应该删除开引号时,什么都没有发生。我再次按退格键,它删除了开引号,然后我把引号放回并执行查询,它工作了,尽管看起来完全相同。
我在WebMatrix中进行开发,并从控制台复制了对象id。无论何时在WebMatrix中从控制台复制,您都可能选择一些会导致错误的不可见字符。
我觉得你最好这样写:
db.getCollection('Blog').find({"_id":ObjectId("58f6724e97990e9de4f17c23")})
只是做的事:
db.getCollection('test').find('4ecbe7f9e8c1c9092c000027');
在MongoDB Stitch函数中,可以使用BSON完成,如下所示:
使用BSON实用程序包中的ObjectId helper来实现此目的,如下例所示:
var id = "5bb9e9f84186b222c8901149";
BSON.ObjectId(id);