sql >> Databasteknik >  >> NoSQL >> MongoDB

Infoga ett inbäddat dokument i ett nytt fält i mongodb-dokument

Du kan göra det med

db.test.update(
   { _id : 133 },
   { $set : { PackSizes:  {_id: 123, PackSizeName:"xyz", UnitName:"pqr"}} }
)

PackSizes kan vara vilket dokument som helst, med array eller utan.

Ditt resultatdokument kommer att vara

{
    "_id" : 133,
    "Name" : "abc",
    "Price" : 20,
    "PackSizes" : {
        "_id" : 123,
        "PackSizeName" : "xyz",
        "UnitName" : "pqr"
    }
}

Uppdaterad: För att lägga till nytt fält och en medlem till array,

Anta att vi har ditt originaldokument

{
   _id: 133,
   Name: "abc",
   Price: 20
}

Steg 1:lägg till nytt fält:PackSizes är en array

db.test.update(
   { _id : 133 },
   { $set : {PackSizes: [ {_id: 123, PackSizeName:"xyz", UnitName:"pqr"}]}}
)

Steg 2:tryck nytt objekt till array

db.test.update(
   { _id : 133 },
   { $push : { PackSizes: {_id: 124, PackSizeName:"xyz", UnitName:"pqr"}} }
)

och du kommer att ha

{
    "_id" : 133,
    "Name" : "abc",
    "Price" : 20,
    "PackSizes" : [ 
        {
            "_id" : 123,
            "PackSizeName" : "xyz",
            "UnitName" : "pqr"
        }, 
        {
            "_id" : 124,
            "PackSizeName" : "xyz",
            "UnitName" : "pqr"
        }
    ]
}


  1. Fråga efter ett underfält i documentdb

  2. Använd lean i mongoose med callback

  3. Vad är skillnaden mellan mongoose och mongoJS? Vilken ska jag använda?

  4. Mongo DB, PHP lägger till eller uppdaterar ett fält i ett dokument