当我运行一个简单的findOne来获取没有过滤器的文档时,我会得到这样的结果:
mongos> db.mycollection.findOne({},{_id:1})
{ "_id" : "1d0eb04fd0325cd79e4f8dc24268c6ad2205082199957ce42ffb9e802eec73c9" }
但是当我将该 _id 作为过滤器输入时,我没有得到任何结果:
mongos> db.mycollection.findOne({ "_id" : "1d0eb04fd0325cd79e4f8dc24268c6ad2205082199957ce42ffb9e802eec73c9" } )
null
为什么会这样呢?当我在其他字段上搜索时,我能够得到结果,但是使用_id搜索却没有返回任何结果。
需要注意的是,这些文档包括一个带有自己的_id的嵌套对象。使用这个nested._id字段进行搜索也没有返回任何结果。
我的环境:运行在Centos 7上的2个分片mongoDB 3.4。每个副本集都有3个成员,一切看起来都很健康。
use db_name
命令之后输入了db.mydbname.findOne
,而应该输入db.mycollection.findOne
。有时候我真不知道自己怎么会这样。谢谢你的回答! - Shrout1