0

在我的数据库中,当我执行 db.markers.find() 我有这个结果:

{ "_id" : ObjectId("518134733198c6952f000000"), "location" : { "type" : "Point", "coordinates" : [ -48.8397216796875, -19.68656825792867 ] }, "m_info" : { "category" : "14", "sub_category" : "156", "description" : "Teste" }, "user_info" : { "email" : "user@gmail.com", "name" : "John Doe" } }
{ "_id" : ObjectId("518192d13198c69e3c000000"), "location" : { "type" : "Point", "coordinates" : [ -44.52420382953613, -17.586578222234177 ] }, "marker_info" : { "category" : "9", "sub_category" : "118", "description" : "I'm working with TI." }, "user_info" : { "email" : "user2@gmail.com", "name" : "John Doe2" } }

但是当我尝试类似 db.markers.find({ user_info : { email : 'user@gmail.com' }}) 它没有返回结果为什么这不起作用?

谢谢,

4

1 回答 1

3

这是因为您正在查找 user_info 对象所在的所有文档 { email : 'user@gmail.com' }

如果您想匹配在 user_info 中恰好有电子邮件为“user@gmail.com”的文档,而不管子文档的其余部分如何,请使用点表示法

db.markers.find({ "user_info.email" : "user@gmail.com })
于 2013-05-02T00:23:45.560 回答