使用pymongo在mongodb中一起更新并插入?

时间:2018-06-10 14:06:08

标签: mongodb insert conditional pymongo mongodb-update

我有一个字典列表如下:

data=[{
      "uni_id": '101',
      "name":"abc",
      "age": 10,
    },
    { 
     "uni_id": '102',
      "name":"def",
      "age": 12,

     }]

我想使用这个词典来更新我的数据库只有" uni_id"存在于数据库中,如果它不存在于我的数据库中,那么我想插入该特定的" uni_id"以及它的相应名称"和"年龄":

我的更新声明如下,但我也想使用insert来满足上述条件。如何编写insert语句?或者有没有办法写一些if-else语句来做更新和插入?

db.students.update_one(
    {"uni_id":data[0]['uni_id']},
    {
    "$set":
   {
    "name":"abc_1",
   }})

1 个答案:

答案 0 :(得分:1)

upsert设置为true ...如果集合中不存在更新的文档,则会创建新文档

db.students.update_one(
  { "uni_id": data[0]['uni_id']},
  { "$set": { "name":"abc_1" }},
  True
)