У меня есть данные, хранящиеся в моем db.данные о массовом обновлении в mongodb
[
{
date:'1-1-2016',
users:[
{
'name':'james',
'age':18
},
{
'name':'alice',
'age':20
}
]
},
{
date:'2-1-2016',
users:[
{
'name':'james',
'age':18
},
{
'name':'alice',
'age':20
},
{
'name':'xiaomi',
'age':29
}
]
}
]
У меня есть проблема с массовым обновлением массива объекта эффективно.
Мое начальное решение обновить на одной коллекции
Users.update({date:'1-1-2016','user.name':'james'},{'$set':'users.$.age':5}})
Так это обновит возраст Джеймсе до 5 из 18, база по дате и имени пользователя.
Но как увеличить объем обновления, говорит диапазон дат? использовать цикл с указанным выше запросом? Я думаю, что это неэффективно. Нужно руководствоваться.
что, если на 1- 1-2016 Я хочу установить возраст 10 на james и 2-1-2016 Я хочу установить возраст до 11 на james и так далее? Это не дата, извините, я пропустил интерпретацию. Это массовые обновления данных за несколько разных дат. –
Я обновил с помощью 'bulkWrite' для выполнения нескольких' updateMany' на основе динамического имени конфигурации/возраста –
, это именно то, что я сделал ранее. Но у вашей логики есть недостаток, что, если пользователь выбрал 1-1-2016, 4-1-2016 и 1-2-2016? –