MongoDB - 如何动态更改密钥

时间:2015-11-16 18:17:16

标签: mongodb mongodb-query

我是MongoDB的新手。我想知道MongoDB如何实现“变量插值”?

我有以下代码

for (i=0;i<3;i++){
db.test2.insert({i:i+1}); 
}

哪个插入

{ "_id" : ObjectId("564a1bd0987fe676b9cad025"), "i" : 1 }
{ "_id" : ObjectId("564a1bd0987fe676b9cad026"), "i" : 2 }
{ "_id" : ObjectId("564a1bd0987fe676b9cad027"), "i" : 3 }

但我想要

  { "_id" : ObjectId("564a1bd0987fe676b9cad025"), "0" : 1 }
  { "_id" : ObjectId("564a1bd0987fe676b9cad026"), "1" : 2 }
  { "_id" : ObjectId("564a1bd0987fe676b9cad027"), "2" : 3 }

Mongo不会改变关键部分的价值。如何适应它?

1 个答案:

答案 0 :(得分:1)

您需要动态构建查询。

var documents = [];
for(var i=0; i<3; i++) {
    var doc = {};
    doc[i] = i;
    documents.push(doc);
}

db.collection.insert(documents)

然后db.collection.find()产生:

{ "_id" : ObjectId("564a2296c68c7068c12fb206"), "0" : 0 }
{ "_id" : ObjectId("564a2296c68c7068c12fb207"), "1" : 1 }
{ "_id" : ObjectId("564a2296c68c7068c12fb208"), "2" : 2 }

请注意,将字符串整数作为字段名称不是一个好习惯