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

variabel med mongodb dotnotation

Du skal oprette dit variabelt-nøglede objekt separat, fordi JS før ES2015 ikke tillader andet end konstante strenge i objektets literal syntaks:

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
}, ...);

REDIGER i ES2015 er det nu muligt at bruge et udtryk som en nøgle i et objekt-literal ved hjælp af [expr]: value syntaks, og i dette tilfælde også ved hjælp af ES2015 backtick-strenginterpolation:

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

Ovenstående kode fungerer i Node.js v4+



  1. MongoDB &CodeIgniter:Vælg hvor et felt findes

  2. Skal jeg gemme JWT-tokens i redis?

  3. Serialisering af uforanderlige værdityper med Mongo C#-driver

  4. Typescript Mongoose ignorer visse felter i forespørgselsresultatet på den sikre måde