我有一個 mongodb 檔案,如果不存在,我想設定一個欄位,否則如果該欄位存在,我想保持原樣,我不知道我的代碼有什么問題:
await UserAnalytics.findOneAndUpdate(
{ user },
{
$inc: {
nbPosts: 1,
},
},
{
$cond: [
{ bestPost: { $exists: false } },
{ $set: { bestPost: newPost._id } },
{ $set: { bestPost: "$bestPost" } },
],
}
);
請問有什么幫助嗎?
uj5u.com熱心網友回復:
您必須使用聚合框架來完成。為了在更新查詢中使用聚合框架,您需要將第二個輸入包裝為[]:
db.collection.update({
user: 1
},
[
{
"$set": {
"nbPosts": {
"$sum": [
"$nbPosts",
1
]
},
"bestPost": {
"$cond": {
"if": {
"$eq": [
"$bestPost",
undefined
]
},
"then": "new_id",
"else": "$bestPost"
}
}
}
}
])
作業示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/518643.html
