【发布时间】:2019-02-04 06:13:06
【问题描述】:
我想查询一个子文档。问题是,MongoDB 似乎尊重对象键的顺序。因此,如果我执行以下查询,我将不会收到任何结果:
db.getCollection('test').find({docId:'tLDmtdeYuG9DiGGrL',optimizeParams:{"deviceType":"mobile","daytime":"night"}})
如果我改变optimizeParams的顺序,我会得到一个结果:
db.getCollection('test').find({docId:'tLDmtdeYuG9DiGGrL',optimizeParams:{"daytime":"night","deviceType":"mobile"}})
现在建议使用点表示法,但在这种情况下,我将收到包含两个键的所有文档。但我只想要只有两个键(没有其他键)的文档:
db.getCollection('test').find({docId:'tLDmtdeYuG9DiGGrL',"optimizeParams.deviceType":"mobile","optimizeParams.daytime":"night"})
有没有一种方法可以在不考虑键顺序的情况下执行查询?
【问题讨论】:
标签: mongodb mongodb-query