sql >> Database teknologi >  >> NoSQL >> MongoDB

Indsæt et indlejret dokument i et nyt felt i mongodb-dokument

Du kan gøre det med

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

Pakkestørrelser kan være et hvilket som helst dokument, med array eller uden.

Dit resultatdokument vil være

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

Opdateret: For at tilføje nyt felt og et medlem til array,

Antag, at vi har dit originale dokument

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

Trin 1:Tilføj nyt felt:PackSizes er en matrix

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

Trin 2:Skub nyt element til array

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

og du vil have

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


  1. Hvordan flytter man penge med MongoDB?

  2. MongoDB $setEquals

  3. Hvordan opretter man en model i DRY-mønster ved hjælp af flow.js (til asynkrone opkald) i node.js?

  4. MongoDB-udtryk for at forespørge på række af underdokumenter