У меня около 40 документов в моей коллекции. Мне нужно обновить некоторые элементы в двух массивах. Массивы документа выглядитКак обновить массив в MongoDB?
"array1": [
{
"id" : "2030170",
"date1" : ISODate("2016-01-04T07:10:00.000Z"),
"date2" : ISODate("2016-01-04T08:00:00.000Z")
}
],
"array2": [
{
"Id" : "43463565",
"date1" : ISODate("2016-01-04T07:10:00.000Z"),
"date2" : ISODate("2016-01-04T08:00:00.000Z")
}
]
Как обновить поля date1 и дата 2 в обоих массивах?
Я использую скрипт java для обновления других данных. Похоже
db.getCollection('my.collec').update({ "myId" : { $gte: 293, $lte: 438}},
{
"$currentDate": { "time1": true },
"$set": {
"time2": true,
"time3": true
}
}, { multi: true }
)
Я пытался так:
db.getCollection('my.collec').update({ "myId" : { $gte: 293, $lte: 438}},
{
"$currentDate": { "time1": true },
"$set": {
"time2": true,
"time3": true,
"array1.0.date1": true,
"array1.0.date2": true,
"array2.0.date1": true,
"array2.0.date2": true
}
}, { multi: true }
)
Но вместо CurrentDate я получаю «истинный». С такими переменными, как время, все работает нормально.