有没有办法在 node-mongodb-native 驱动程序中使用动态键?我的意思是让一个变量保存 key 而不是直接使用 key 。
就像人们通常会这样做:
db.createCollection('col', function(err, col){
col.insert({'_id':'wak3ajakar00'});
}
改为这样做:
db.createCollection('col', function(err, col){
var ID = '_id';
col.insert({ID:'wak3ajakar00'});
}
当我运行后面的代码时,除了标准创建的 _id
之外,我最终会在集合 db.col 中得到一个文档,其中包含一个名为 ID
的键,而不是只需一个键 _id
,其值为 wak3ajakar00
。这让我相信实际上不可能直接做到这一点。
相反,我现在只是创建要提前插入的文档,如下所示:
db.createCollection('col', function(err, col){
var ID = 'wak3ajakar00';
var key = '_id';
insertion = {}
insertion[key] = ID;
col.insert(insertion);
}
这完全符合我的要求,但我只是想知道是否有更好的方法来解决这个问题。 JavaScript、NodeJS 和 MongoDB 对我来说都是新的,所以我觉得我很容易遗漏一些东西。如果没有,有没有更简洁的方法可以用 JavaScript 编写上述代码?
最好的,谢谢,
萨米
最佳答案
2020 年编辑:现在可以通过几种方便的新方式创建对象文字:
您现在可以将变量用方括号括起来,作为对象文字中的属性名称:
const ID = "_id";
col.insert({ [ID]: "wak3ajakar00" });
你可以使用变量名作为属性名,变量值作为对象字面量中的属性值,如下所示:
const _id = "wak3ajakar00";
col.insert({ _id });
2011 年的原始答案:
在对象字面量语法中,不能使用变量作为键名,只能使用值。执行此操作的方法是您已经发现的方法 - 首先创建您的对象,然后使用方括号表示法将属性添加为单独的步骤。
var obj = {};
var ID = "_id";
obj[ID] = "wak3ajakar00";
关于javascript - 有没有办法在 node-mongodb-native 中使用动态 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047209/