Använd parentesnotation att konstruera dokumentet dynamiskt. Du måste först skapa ett tomt objekt som håller nycklarna och sedan använda parentesnotationen för att lägga till de dynamiska fälten till objektet:
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);
});
}
eller
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);
});
}
Eller så kan du använda ES2015 Object initializer syntax (som påpekats av @xmikex83 i kommentarer):
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);
});
}