我刚刚偶然发现了 MongoDB 的一个意外行为:
db.photosLambda.find({'analysis': {$exists: true}, 'analysis_lambda': {$exists: true}}).count()
db.photosLambda.find({$and: [{'analysis': {$exists: true}}, {'analysis_lambda': {$exists: true}}]}).count()
我不明白为什么第二个查询应该返回一个空结果,而第一个查询返回我所期望的,即photosLambda
集合中的所有元素都具有'analysis'
并'analysis_lambda'
设置为某些东西。
对此有任何线索吗?
更新:感谢下面的评论,我意识到我正在运行一个“过时”版本的 mongo:该$and
运算符是在 v2.0 中引入的(我使用的是 v1.6)。