Usa la notazione parentesi per costruire il documento in modo dinamico. Devi prima creare un oggetto vuoto che conterrà le chiavi e quindi utilizzare la notazione tra parentesi per aggiungere i campi dinamici all'oggetto:
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);
});
}
o
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);
});
}
Oppure puoi utilizzare inizializzatore di oggetti ES2015 sintassi (come sottolineato da @xmikex83 nei commenti):
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);
});
}