直到现在,我才相信查询中的键顺序无关紧要,直到我遇到以下情况:
让我们说有一个带有文档的集合,你需要找到一个属于某个组的集合。以下query
将无法使用_id
pFkpqenxxbiFFtzrd
获取文档。相反,它会获取2SYzj829FKnezgX3b
db.getCollection('Facilities').findOne({_id: "pFkpqenxxbiFFtzrd", _id: {$in: [ '2SYzj829FKnezgX3b', 'pFkpqenxxbiFFtzrd', 'Znsbs5Rzr6DopZmro' ]}})
虽然这个人会这样做:
db.getCollection('Facilities').findOne({_id: {$in: [ '2SYzj829FKnezgX3b', 'pFkpqenxxbiFFtzrd', 'Znsbs5Rzr6DopZmro' ]}, _id: "pFkpqenxxbiFFtzrd"})
问题是为什么?