Вставить объекты в объект Mongodb

1

Я пытаюсь вставить объекты в объект (а не массив). Как мне это сделать?

Вот пример структуры данных, которые я пытаюсь достичь.

users:{
 '0': {
    name: 'Tom',
    age: '19',
    car: 'Mazda 3',
  },
 '1': {
    name: 'Ryan',
    age: '27',
    car: 'BMW',
  },
 '2': {
    name: 'Jake',
    age: '22',
    car: 'Audi',
  }
}

users - это поле в документе, содержащем коллекцию пользователей. Я хочу добавить новых пользователей в поле users и когда я их добавлю, ключи внутри пользователей должны соответственно увеличиваться.

поэтому новый добавленный объект должен быть:

'3': {
        name: 'Sam',
        age: '24',
        car: 'Honda',
      }

Это то, что я сейчас делаю:

let newUser = {
            name: 'Sam',
            age: '24',
            car: 'Honda',
          };

db.collection('Group').findOneAndUpdate({
   '_id': new ObjectId(groupId),
}, {
  '$set': {
     'users.$': newUser,
   },
}, {
   returnOriginal: false,
}
})

Заранее спасибо.

  • 0
    Посмотрите $update - docs.mongodb.com/manual/reference/method/db.collection.update
  • 0
    Позвольте мне обновить вопрос быстро. users - это поле в документе. Я хочу добавить новые пользовательские объекты в поле users . Кроме того, я хочу, чтобы ключи users увеличивались при добавлении нового объекта пользователя.
Показать ещё 4 комментария
Теги:

2 ответа

0

Вы можете попробовать это

db.collection.findOneAndUpdate(
  { },
  { "$set": {
    "users.3": newUser
  }}
)
0
yourModel.create(req.body,function(err,result){
   console.log(result);
});

suppose your req.body will 

 {name: 'Sam',age: '24',car: 'Honda' };

Второй путь:

 user.collection.create(req.body,function(err,result){
   console.log(result);
});

suppose your req.body will 

 {name: 'Sam',age: '24',car: 'Honda' };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню