簡體   English   中英

mongodb 更新集合中的字段同時自動生成另一個字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM