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

comment créer des clés de document dynamiques dans mongodb

Utilisez la notation entre parenthèses pour construire le document dynamiquement. Vous devez d'abord créer un objet vide qui contiendra les clés, puis utiliser la notation entre parenthèses pour ajouter les champs dynamiques à l'objet :

insertData_dynamic_colone: function(collection, colone1, colone2) {
    var obj = {};
    obj[colone1] = "14";
    obj[colone2] = "15";
    dbObject.collection(collection).insertOne(obj, function(err, result) {
        assert.equal(err, null);         
    });
}

ou

insertData_dynamic_colone: function(collection) {

    var obj = {},
        colone1 = "prod",
        colone2 = "prod2";
    obj[colone1] = "14"; // bracket notation
    obj[colone2] = "15";

    dbObject.collection(collection).insertOne(obj, function(err, result) {
        assert.equal(err, null);         
    });
}

Ou, vous pouvez utiliser initialiseur d'objet ES2015 syntaxe (comme souligné par @xmikex83 dans les commentaires) :

insertData_dynamic_colone: function(collection) {

    var colone1 = "prod";
    var colone2 = "prod2";
    dbObject.collection(collection).insertOne({
        [colone1] : "14", // Computed property names (ES6)
        [colone2] : "15"
    }, function(err, result) {
        assert.equal(err, null);         
    });
}