Mongo Eaters ....
只是一个小问题。按照我做的这些查询
db.trip.insert({loc:{hello:1,world:1}});
当我做的时候
db.trip.find({loc:{hello:1,world:1}});
我得到的结果,但当我做
db.trip.find({loc:{hello:1}});
我没有得到结果,实际上我想获得loc.hello为1的文件而不管其他任何loc属性
请这只是一个场景,我有更复杂的问题,但这是根本原因,请帮助我,以便其他人不会被这件事抓住。
答案 0 :(得分:1)
对内部文档使用点表示法
db.trip.find({"loc.hello":1})
见下面的运行。
> db.trip.insert({loc:{hello:1,world:1}});
WriteResult({ "nInserted" : 1 })
> db.trip.find({"loc.hello":1})
{ "_id" : ObjectId("5475bed907fbea3cf13e14d6"), "loc" : { "hello" : 1, "world" : 1 } }
> db.trip.insert({loc:{hello:2,world:1}});
WriteResult({ "nInserted" : 1 })
> db.trip.insert({loc:{hello:3,world:1}});
WriteResult({ "nInserted" : 1 })
> db.trip.insert({loc:{hello:4,world:1}});
WriteResult({ "nInserted" : 1 })
> db.trip.insert({loc:{hello:4,world:1}});
WriteResult({ "nInserted" : 1 })
> db.trip.insert({loc:{hello:4,world:2}});
WriteResult({ "nInserted" : 1 })
> db.trip.find({"loc.hello":4})
{ "_id" : ObjectId("5475bf2907fbea3cf13e14d9"), "loc" : { "hello" : 4, "world" : 1 } }
{ "_id" : ObjectId("5475bf2b07fbea3cf13e14da"), "loc" : { "hello" : 4, "world" : 1 } }
{ "_id" : ObjectId("5475bf2d07fbea3cf13e14db"), "loc" : { "hello" : 4, "world" : 2 } }