0

以前の質問で、埋め込まれた MongoDB ドキュメント内のエントリを見つける方法について尋ねました。今、新しい問題に取り組んでいます。私の構造は次のようになります:

{
    "_id" : ObjectId("5260c4bd95f8e3ad08000000"),
    "ip" : "127.0.0.1",
    "services" : [ 
        {
            "port" : "22"
        }
    ]}

ポートが 22 の services.port に新しいキーと値のペアを追加して、次のようにします。

{
    "_id" : ObjectId("5260c4bd95f8e3ad08000000"),
    "ip" : "127.0.0.1",
    "services" : [ 
        {
            "port" : "22",
            "product" : "ssh"
        }
    ]}

これは私が実行するアップデートです:

db.hosts.update({ "ip" : "127.0.0.1" }, { $addToSet : { services : { "port" : "22", "product" : "ssh" }}});

そして、これは私が得ているものです

{
    "_id" : ObjectId("5260c4bd95f8e3ad08000000"),
    "ip" : "127.0.0.1",
    "services" : [ 
        {
            "port" : "22"
        }, 
        {
            "port" : "22",
            "product" : "ssh"
        }
    ]}

私が間違っていることを知っている人はいますか?エントリを削除して再作成する必要がありますか?

4

1 に答える 1