【问题标题】:How to update the data in existing document in mongodb如何更新MongoDB现有文档中的数据
【发布时间】:2021-07-10 23:11:39
【问题描述】:

我想更新现有文档中的数据,而不是在数据库中创建其他 json 文档。但它没有修改日志显示{ n: 0, nModified: 0, ok: 1 }..请帮助我提前谢谢

这是我的代码:

 const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id},
 { 
   $push: {  
    languages: req.body.languages,
    storeType: req.body.storeType,
    intrestedIn: req.body.intrestedIn 
   }})
 } 

我在邮递员中传递这些数据:

{
"languages":["korean,"Hindi"],
"storeType":["gas station"],
"intrestedIn":["sarees"]
} 

我的数据库中有一个 json 文档。

{ 
"_id" : ObjectId("60e968581871a42ab43a2345"), 
"languages" : [
    "English"
], 
"intrestedIn" : [
    "clothing", 
    "foot wear", 
    "watches",
], 
"storeType" : [
    "department stores", 
    "Medical stores"
]
}

我想要这个 fromat:-

 { 
  "_id" : ObjectId("60e968581871a42ab43a2345"), 
  "languages" : [
     "English",
     "korean,
     "Hindi"
  ], 
"intrestedIn" : [
    "clothing", 
    "foot wear", 
    "watches",
    "sarees"
  ], 
   "storeType" : [
     "department stores", 
     "Medical stores",
     "gas station"
   ]
   }

【问题讨论】:

标签: node.js mongodb


【解决方案1】:

您可以使用以下查询作为您的要求,我已经在我的本地进行了尝试和测试,有一件事您忘记使用 韩语

的结束引号语言数组
const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id},
 { 
   $push: {   
       languages: {
          $each:  req.body.languages
       },
      storeType: {
        $each:  req.body.storeType
      },
      intrestedIn: {
        $each: req.body.intrestedIn 
      }
   }
})

但此代码会在数组中写入重复项,因此如果您不想在数组中推送重复项,可以使用$addToSet 代替$push,如下所示

const userUpdatedPassword = await UserPreferred.updateOne({_id: userPreferredExists._id},
 { 
   $addToSet: {   
       languages: {
          $each:  req.body.languages
       },
      storeType: {
        $each:  req.body.storeType
      },
      intrestedIn: {
        $each: req.body.intrestedIn 
      }
   }
})

【讨论】:

    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多