我准备具有匹配条件的查询,并使用$nin
。我需要选择状态不等于0,5,50,1
的所有文档。也许我不正确地理解$nin
运算符。 $nin
-字段值不在指定数组中。它的意思是不等于5或不等于50,但是值5不等于50且这种无聊的满足。...但这没有任何意义。哪个运算符实现强条件-与数组中的元素不相等(例如和)
这是我的查询
db.getCollection('inv').aggregate(
[
{ $match: { $and: [ { status: {$nin: [0, 5, 50, 1]}} ] } },
{ $sort: { increment_id: -1 } },
{ $limit: 5 },
{
$project:
{
status: 1,
item: 1,
entity_id: 1,
increment_id: 1,
due_date: 1,
current_date: new Date(),
type_code: 1,
compare_duo_date:
{
$cond: { if: { $lt: [
{ $dateFromString: {
dateString: {$dateToString: { format: "%Y-%m-%d", date: "$due_date" }} } },
{ $dateFromString: {
dateString: {$dateToString: { format: "%Y-%m-%d", date: new Date() }} } }
] }, then: 1, else: 0 }
}
}
}
]
)