У меня есть следующая структура:
- Collection
- document
- message
- field 1
- поле 2
- поле 3
Документ начнется, как и раньше, мне нужно будет найти документ, выполнив поиск, например:
db.document.find({"message.field1": "a"})
и когда он будет найден, добавьте еще одно сообщение в виде массива, и в итоге это будет выглядеть так:
- Collection
- document
- message
- field 1
- поле 2
- поле 3
- message (new doc)
- field 1
- поле 2
- поле 3
Я пытаюсь сделать:
db.packets.update(
{ $or: [
{ "message.field1": "a" } , { "message.field2": "a" }
]},
{
packet: {
"packet" : {
"field1" : "whatever",
"field2" : "Whatever",
"field3" : "blahblah"
}
}
},
{
upsert: true
} )
Но mongo, похоже, не находит поддокумент, который я ищу... возможно ли иметь несколько массивов? Я думаю, может быть, mongodb не позволяет иметь несколько вложенных документов с одинаковым именем?
Спасибо ребята,
Дэйвид
db.packets.findOne()
- и каким вы хотите, чтобы он был после обновления? - person Enrique Fueyo   schedule 03.08.2014