[英]Mongodb condition with $or and $eq
我正在嘗試使用此條件為 user_id 字段設置優先級(優先級為我想成為優先級的 id)
$cond: {
if: {
$or: {
$eq: [
"$user_id",
ObjectId('5e9619084ad04327e4295b2c')
],
$eq: [
"$user_id",
ObjectId('5e9618f04ad04327e4295b27')
]
}
},
then: 1,
else: -1
}
}
但僅當用戶 ID 為: 5e9618f04ad04327e4295b27
($or 條件中的第二個)時,它才給我優先級 1。
問題是什么?
您有語法錯誤。 $or在您傳遞單個 object 時需要一系列條件,這就是為什么只應用最后一個條件的原因,請嘗試:
{
$cond: {
if: {
$or: [
{ $eq: ["$user_id", ObjectId('5e9619084ad04327e4295b2c') ] },
{ $eq: ["$user_id", ObjectId('5e9618f04ad04327e4295b27') ] },
]
},
then: 1,
else: -1
}
}
您還可以簡化代碼並使用$in :
{
$cond: {
if: { $in: [ "$user_id", [ObjectId('5e9619084ad04327e4295b2c'), ObjectId('5e9618f04ad04327e4295b27')] ] },
then: 1,
else: -1
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.