MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So erstellen Sie dynamische Dokumentschlüssel in Mongodb

Verwenden Sie die Klammernnotation um das Dokument dynamisch aufzubauen. Sie müssen zuerst ein leeres Objekt erstellen, das die Schlüssel enthält, und dann die Klammernotation verwenden, um die dynamischen Felder zum Objekt hinzuzufügen:

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

oder

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

Oder Sie können ES2015 Object Initializer verwenden Syntax (wie von @xmikex83 in den Kommentaren angegeben):

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