sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB aktualizuje objekt pole v poli

můžete použít $[] positional-all na aktualizované prvky vnořeného pole, mongo doc pro $[]

dotaz

db.t14.update(
   {},
   { $set: { "calc.$[].datasets.$[elem].name": "updated" } },
   { arrayFilters: [  { "elem": "x1" } ], multi: true}
)

vzorová kolekce s dokument

> db.t14.findOne()
{
        "_id" : 1,
        "calc" : [
                {
                        "preset" : "abc",
                        "datasets" : [
                                {
                                        "_id" : "x1",
                                        "name" : "n1"
                                },
                                {
                                        "_id" : "x2",
                                        "name" : "n2"
                                }
                        ]
                }
        ]
}

aktualizace

> db.t14.update({},{$set: { "calc.$[].datasets.$[elem].name": "newname" } },{ arrayFilters: [{ "elem.name": "n1" }], multi: true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

zveřejnit aktualizaci

> db.t14.findOne()
{
        "_id" : 1,
        "calc" : [
                {
                        "preset" : "abc",
                        "datasets" : [
                                {
                                        "_id" : "x1",
                                        "name" : "newname"
                                },
                                {
                                        "_id" : "x2",
                                        "name" : "n2"
                                }
                        ]
                }
        ]
}
>



  1. Migrace na MongoDB:jak se dotazovat GROUP BY + WHERE

  2. Získejte počet otevřených připojení v mongoDB pomocí javy

  3. Jak začít s automatizací databází

  4. Jak získat jakoukoli položku (Point, LineString, Polygon) v ohraničovacím rámečku v mongodb