В моем mongodb есть коллекция log
, которая имеет уникальный индекс с именем log_id
. Я хочу достичь этой цели:
Когда я обновляю документы, если документ с тем же log_id
уже существует, то {$inc: {count: 1}}
. Если нет, то вставьте новый документ с {count: 1}
. Могу ли я сделать это в одной команде?Как обновить документ в Mongodb с условием
0
A
ответ
0
вы можете это в одном запросе с опцией {upsert : true}
.
и $inc
синтаксис { $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }
поэтому вы должны использовать {$inc: {count: 1}}
вместо {count: {$inc: 1}}
попробовать:
db.log.update(
{"log_id": compareLogId},
{$inc: {count: 1}},
{upsert:true}
)
Как если 'log_id' не существует, то новый документ не будет' { count: 1} 'Потому что будет больше cols. – Charles
Спасибо, отредактирован для '{$ inc: {count: 1}}' – Charles
, если не соответствует то, что вам нужно? @Charles –