我目前在查询中遇到一个小问题,因为它返回了我希望排除的“ doc”。
db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$not: {$ne: "Cancelled"}}}).sort({ $natural: 1 }).limit(5)
我想取回包含“ offerImage1”键的所有“文档”,并且不取消“ offerStatus”,但是正如我所说,我取回了取消的文档。
我认为这只是一个语法问题,但是任何帮助都会很棒
答案 0 :(得分:1)
我没有要测试的Mongo数据库实例,但是双重否定不是问题吗? 你只是尝试
db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$not: {$eq: "Cancelled"}}}).sort({ $natural: 1 }).limit(5)
答案 1 :(得分:1)
您在$not
字段的查询中使用$ne
和offerStatus
运算符的组合,其结果为-“商品状态不等于,不等于已取消的记录”,因此您正在取消记录。
您需要从查询中删除$not
运算符,以使其正常工作。
db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$ne: "Cancelled"}}).sort({ $natural: 1 }).limit(5)