sql >> Database >  >> NoSQL >> MongoDB

variabele met mongodb-puntnotatie

U moet uw object met variabele sleutel afzonderlijk maken, omdat JS vóór ES2015 niets anders toestaat dan constante tekenreeksen in de letterlijke syntaxis van het object:

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

BEWERKEN in ES2015 is het nu mogelijk om een ​​expressie te gebruiken als een sleutel in een letterlijke object, met behulp van [expr]: value syntaxis, en in dit geval ook met behulp van ES2015 backtick string-interpolatie:

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

De bovenstaande code werkt in Node.js v4+



  1. Fout:Kan geen verbinding maken met Redis op redis:6379:Naam of service niet bekend

  2. MongoDB - Fout:ongeldig schema, verwachte mongodb

  3. MongoDB:verbinding maken met de ASP.NET MVC-toepassing

  4. mongodb hoe je maximale waarde uit collecties haalt