0

我有以下结构:

  • 收藏
    • 文档
      • 信息
        • 字段 1
        • 字段 2
        • 字段 3

该文档将像以前一样开始,我需要通过以下搜索找到该文档:

db.document.find( { "message.field1": "a" } )

找到后,将另一条消息添加为数组,最终结果如下:

  • 收藏
    • 文档
      • 信息
        • 字段 1
        • 字段 2
        • 字段 3
      • 消息(新文档)
        • 字段 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 不允许有多个同名的子文档?

多谢你们,

大卫

4

1 回答 1

0

我发现了我的问题,至少我认为我做到了:

这个:

{
    packet: {
        "packet" : {
            "field1" : "whatever",
            "field2" : "Whatever",
            "field3" : "blahblah"
        }
    }
}

实际上应该是:

{
    "packet" : {
        "field1" : "whatever",
        "field2" : "Whatever",
        "field3" : "blahblah"
    }
}

第一个我在寻找“packets.packets.field1”,我正在使用“packets.field1”所以我不得不改变层次结构......

感谢你的帮助!

于 2014-08-03T19:22:25.640 回答