Mongodb 对美元和操作的困惑
下面的MongoDB文档示例似乎是错误的 有什么建议吗 a==1和a>5永远不会匹配任何文档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
在上面的示例文档中,如果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"}