我有以下结构:
- 收藏
- 文档
- 消息
- field 1
- field 2
- field 3
文档将像以前一样开始,我需要通过搜索来找到文档:
db.document.find({" message.field1":" a"})
并在找到时,将另一条消息添加为数组,最终将如下所示:
- 收藏
- 文档
- 消息
- field 1
- field 2
- field 3
- 消息(新文档)
- field 1
- field 2
- field 3
我试图这样做:
db.packets.update(
{ $or: [
{ "message.field1": "a" } , { "message.field2": "a" }
]},
{
packet: {
"packet" : {
"field1" : "whatever",
"field2" : "Whatever",
"field3" : "blahblah"
}
}
},
{
upsert: true
} )
但是mongo似乎没有找到我正在搜索的子文档......是否可以拥有多个数组?我想,也许mongodb不允许有多个同名的子文档?
谢谢你们,
大卫
答案 0 :(得分:0)
我发现了我的问题,至少我认为我做了:
此:
{ packet: { "packet" : { "field1" : "whatever", "field2" : "Whatever", "field3" : "blahblah" } } }
实际应该是:
{ "packet" : { "field1" : "whatever", "field2" : "Whatever", "field3" : "blahblah" } }
第一个我正在寻找" packets.packets.field1",我使用" packets.field1"所以我不得不改变层次......
感谢大家的帮助!