Mongodb 对美元和操作的困惑

Mongodb 对美元和操作的困惑,mongodb,mongodb-php,Mongodb,Mongodb Php,下面的MongoDB文档示例似乎是错误的 有什么建议吗 a==1和a>5永远不会匹配任何文档 在上面的示例文档中,如果a元素的值等于1且大于5,则将返回该文档示例中缺少导入行: db.foo.insert( { a: [ 1, 10 ] } ) db.foo.find( { $and: [ { a: 1 }, { a: { $gt: 5 } } ] } ) 插入将为您提供如下所示的记录: {"a" : [1, 10] , "_id" : "497ce4051ca9ca6d3efca323

下面的MongoDB文档示例似乎是错误的

有什么建议吗

a==1和a>5永远不会匹配任何文档


在上面的示例文档中,如果a元素的值等于1且大于5,则将返回该文档

示例中缺少导入行:

db.foo.insert( { a: [ 1, 10 ] } )
db.foo.find( { $and: [ { a: 1 }, { a: { $gt: 5 } } ] } )
插入将为您提供如下所示的记录:

{"a" : [1, 10] , 
 "_id"  : "497ce4051ca9ca6d3efca323"}
因此,find将返回a==1且a的值也大于5的任何结果。在这种情况下,a可以是两个值:


a是1,同时也是10。这就是为什么这个查询会返回这个结果。

是的,多键可能会让人困惑,我认为它们应该包括一个简单的$示例,在跳转到多键示例之前,因为这是一个完整的其他文档,您需要阅读才能完全理解它
{"a" : [1, 10] , 
 "_id"  : "497ce4051ca9ca6d3efca323"}