0
文件我已经按照我的账户集合:蒙戈命令行查询嵌入式按对象ID
{ "_id" : ObjectId("4fc55125476e0a27d9000003"),
"created_at" : ISODate("2012-05-29T22:43:49Z"),
"teachers" : [ {
"_id" : ObjectId("4fc55125476e0a27d9000004"),
"updated_at" : ISODate("2012-05-29T22:43:49Z"),
"created_at" : ISODate("2012-05-29T22:43:49Z")
} ],
"updated_at" : ISODate("2012-05-29T22:43:49Z")
}
我想查询那些具有_id 4fc55125476e0a27d9000003老师的账户。
如果我使用命令
db.accounts.findOne({"teachers._id" : ObjectId("4fc55125476e0a27d9000004")})
返回null。
此外,为什么mongo命令行事件挂起时,我使用find而不是findOne与上述命令。
我刚刚保存了您的确切文档,并通过您的确切查询进行查询并找回了文档。当你刚刚执行db.accounts.find()时,文档是否与你粘贴的文档完全一样? –
不知道这是否只是一个错字,但是你只要写一次你想查询** 4fc55125476e0a27d9000003 **,但是你的查询在最后显示** 4 **。如果您的数据集不包含... 3的条目,您将无法找到它。持有...... 3的_id是包含其中的教师信息的_id。无论如何,该查询应该工作。 – philnate
@philnate你是对的。我打算使用老师的编号,即其中有4个的编号。也许这就是我得到null的原因。我会再试一次(今晚晚些时候,现在不能),并发布我发现的内容。谢谢! – septerr