MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

variável com dotnotation mongodb


Você precisa criar seu objeto de chave variável separadamente, porque o JS antes do ES2015 não permite nada além de strings constantes na sintaxe literal do objeto:
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
}, ...);

EDITAR no ES2015, agora é possível usar uma expressão como chave em um literal de objeto, usando [expr]: value sintaxe e, neste caso, também usando a interpolação de string de backtick ES2015:
var stuffID = 5;
collection.update({
    "id": id,
}, {
    "$inc": {
        [`stuff.${stuffID}`]: 1
    }
}, ...);

O código acima funciona no Node.js v4+