У меня есть следующая коллекция
{
"_id" : ObjectId("57315ba4846dd82425ca2408"),
"myarray" : [
{
userId : ObjectId("570ca5e48dbe673802c2d035"),
point : 5
},
{
userId : ObjectId("613ca5e48dbe673802c2d521"),
point : 2
},
]
}
Это мои вопросы
Я хочу нажать в myarray, если userId не существует, его следует добавить в myarray. Если userId существует, он должен быть обновлен до пункта.
Я нашел это
db.collection.update({
_id : ObjectId("57315ba4846dd82425ca2408"), "myarray.userId" : ObjectId("570ca5e48dbe673802c2d035")
},{
$set: {"myarray.$.point": 10}
})
Но если userId не существует, ничего не происходит.
и
db.collection.update({
_id : ObjectId("57315ba4846dd82425ca2408")
},{
$push: {"myarray": {userId: ObjectId("570ca5e48dbe673802c2d035"), point: 10}}
})
Но если объект userId уже существует, он снова будет нажимать.
Каков наилучший способ сделать это в MongoDB?