我想要記錄,如果型別有 0 或 2,則狀態不應等于 0,如果型別 = 3,則忽略狀態。
我試過這種方式但沒有作業。
db.activities.find({
$and: [
{
$or: [
{ type: { $in: [0, 2] } },
{ status: { $ne: 0 } },
],
},
{
$or: [{ type: { $eq: 3 } }],
},
]
})
.projection({})
.sort({ _id: -1 })
.limit(100)
uj5u.com熱心網友回復:
您可以在以下位置嘗試此查詢:
獲取 3 的所有檔案type(不檢查狀態)或type0 或 2 且狀態不為 0 的值(如您在查詢中所擁有的)
此查詢與您的查詢之間的區別在于您使用的是$and,那么type必須是 3 AND 0 或 2。一個數字不能同時是兩個值。
db.collection.find({
$or: [
{
$and: [
{
type: {
$in: [
0,
2
]
}
},
{
status: {
$ne: 0
}
}
]
},
{
type: 3
}
]
})
這里的例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474005.html
下一篇:MongoDB-遍歷陣列陣列
