mongo查询-查找最后5个带有NOT的文档

时间:2018-09-27 06:10:32

标签: mongodb mongoose

我目前在查询中遇到一个小问题,因为它返回了我希望排除的“ doc”。

db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$not: {$ne: "Cancelled"}}}).sort({ $natural: 1 }).limit(5)

我想取回包含“ offerImage1”键的所有“文档”,并且不取消“ offerStatus”,但是正如我所说,我取回了取消的文档。

我认为这只是一个语法问题,但是任何帮助都会很棒

2 个答案:

答案 0 :(得分:1)

我没有要测试的Mongo数据库实例,但是双重否定不是问题吗? 你只是尝试

db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$not: {$eq: "Cancelled"}}}).sort({ $natural: 1 }).limit(5)

答案 1 :(得分:1)

您在$not字段的查询中使用$neofferStatus运算符的组合,其结果为-“商品状态不等于,不等于已取消的记录”,因此您正在取消记录。

您需要从查询中删除$not运算符,以使其正常工作。

db.offers.find({"offerImage1": { $exists : true },"offerStatus": {$ne: "Cancelled"}}).sort({ $natural: 1 }).limit(5)