sql >> Databasteknik >  >> NoSQL >> MongoDB

variabel med mongodb dotnotation

Du måste skapa ditt variabelt tangentbord separat, eftersom JS före ES2015 inte tillåter något annat än konstanta strängar i objektets bokstavliga syntax:

var stuffID = 5
var stuff = {};                 // create an empty object
stuff['stuff.' + stuffID] = 1;  // and then populate the variable key

collection.update({
    "id": id,
}, {
    "$inc": stuff               // pass the object from above here
}, ...);

REDIGERA i ES2015 är det nu möjligt att använda ett uttryck som en nyckel i en objektsliteral, med [expr]: value syntax, och i det här fallet även med ES2015 backtick-stränginterpolation:

var stuffID = 5;
collection.update({
    "id": id,
}, {
    "$inc": {
        [`stuff.${stuffID}`]: 1
    }
}, ...);

Koden ovan fungerar i Node.js v4+



  1. MongoDB uppdaterar alla fält med arrayfel

  2. Arbetar du med kapslade objekt i Redis?

  3. Varför säger Express till mig att min standardvymotor inte är definierad?

  4. mongodb insert misslyckas på grund av socket undantag