关于数组比较查询的问题
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] },
{ item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] },
{ item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] },
{ item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] },
{ item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }
]);
拿官网的例子来说
当使用{ tags: "red" }
与{ tags: {$eq: "red"} }
是查询tags中,任一元素等于“red”。
当使用{ tags:{$ne: "red"} }
却是查询tags中,所有元素不等于“red”。
感觉有些怪,不知道这个理解对不对。
然后又提供了一个操作符$elemMatch
可以用来指定任一元素满足条件。也就是说{ tags: {$elemMatch:{$ne: "red"} } }
是任一元素不等于“red”。
那如果我想使用所有元素的比较查询,应该怎么办?比如所有的dim_cm都大于20。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
去找了下好像也没找到。但是可以换个思路,有一个小于就不满足就好了
db.inventory.find( { dim_cm: {"$not":{ $lt: 25 }} } )