MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

variable avec mongodb dotnotation

Vous devez créer votre objet à clé variable séparément, car JS avant ES2015 n'autorise rien d'autre que des chaînes constantes dans la syntaxe littérale d'objet :

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

MODIFIER dans ES2015, il est désormais possible d'utiliser une expression comme clé dans un littéral d'objet, en utilisant [expr]: value syntaxe, et dans ce cas également en utilisant l'interpolation de chaîne de backtick ES2015 :

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

Le code ci-dessus fonctionne dans Node.js v4+