gpt4 book ai didi

javascript - 如何在 mongodb 中创建动态文档键

转载 作者:行者123 更新时间:2023-11-30 11:53:50 25 4
gpt4 key购买 nike

我的问题包括创建一个包含动态字段和应由用户输入的未定义名称的集合。所以我尝试使用变量来完成它,但它不起作用。

这是代码

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

所以在我得到的数据库上

> db.colone_dynamic.find()
{ "_id" : ObjectId("579af3c4f41e03f0362a5170"), "colone1" : "14", "colone2" : "15" }

但我期待得到

> db.colone_dynamic.find()
{ "_id" : ObjectId("579af3c4f41e03f0362a5170"), "prod" : "14", "prod2" : "15" }

最佳答案

使用 bracket notation动态构建文档。您需要首先创建一个空对象来保存键,然后使用括号表示法将动态字段添加到该对象:

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

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

或者,您可以使用 ES2015 Object initializer语法(正如@xmikex83 在评论中指出的那样):

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

关于javascript - 如何在 mongodb 中创建动态文档键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com