[英]How to update document in Mongodb collection with a field value from another collection
[英]Mongodb update field in collection and at the same time generated automaticly another field
我有一個包含如下數據的集合:
[{
_id: a,
createdAt: "2020-11-10",
createdBy: "test@test.com",
features: {
first: true,
second: true
}},{
_id: b,
createdAt: "2020-11-10",
createdBy: "test@test.com",
features: {
first: false,
second: true
}}]
我想插入一個新功能:第三:真
db.collection.update( { _id:...} , { $set: { features.third : true } }
我的問題是,是否可以為此功能之一插入新行,同時當 mongodb 看到有一個像“third”這樣的字段並且值為 true 時,mongodb 會生成一個新字段( featureConfig) 自動哪個值是空字符串? 所以期望值是:
{
_id: b,
createdAt: "2020-11-10",
createdBy: "test@test.com",
features: {
first: false,
second: true,
third: true
},
featureConfig: "",
}
任何幫助,將不勝感激。
試試這個查詢並檢查它是否按預期工作(示例)
這是查詢:
db.collection.aggregate([
{
"$match": {
"id": 1
}
},
{
"$set": {
"features.third": true
}
},
{
"$project": {
"features": 1,
"featureConfig": {
"$cond": {
"if": "$features.third",
"then": "",
"else": "$false"
}
}
}
}
])
兩個初始階段與您擁有的相同,過濾以按id
匹配並設置值。 然后我使用$project
根據條件創建了一個字段featureConfig
。 如果features.third
值為 true,則創建該字段,否則不創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.