Обновлять и вставлять вместе в mongodb с помощью pymongo? - PullRequest
0 голосов
/ 10 июня 2018

У меня есть следующий список словарей:

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

     }]

Я хочу использовать этот словарь для обновления моей базы данных, только если в базе данных существует «uni_id», если его нет в моейзатем в базу данных я хочу вставить этот конкретный «uni_id», а также соответствующие ему «имя» и «возраст»:

Мое заявление об обновлении выглядит следующим образом, однако я также хотел бы использовать вставку с ним, чтобы удовлетворить вышеуказанноеупомянутые условия.Как написать оператор вставки?Или есть способ написать несколько операторов if-else для обновления и вставки?

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

1 Ответ

0 голосов
/ 10 июня 2018

Установить upsert в значение true ... Создает новый документ, если обновленный документ не существует в коллекции

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