我想复制集合中的一些数据。例如,这种查询的结果;
db.collection("test").find({tag: "ABC"});
结果为;
{"_id" : "1","tag" : "ABC"}
{"_id" : "2","tag" : "ABC"}
我想复制这两个项目并使用新ID创建新项目。
我该怎么做?
1.我认为我可以做到;
db.collection("test").find({"tag": "ABC"}).each(function(err, item) {
//insert each item with a new id
}
但是有更好的方法来复制带有查询的集合吗?
澄清;
因此我想拥有;
{"_id" : "v1_1","tag" : "ABC"}
{"_id" : "v1_2","tag" : "ABC"}
{"_id" : "1","tag" : "ABC"}
{"_id" : "2","tag" : "ABC"}
答案 0 :(得分:0)
我只能想到这个解决方案:
db.collection("test").find({"tag": "ABC"}).each(function(err, items) {
if(err) console.log("Error : " + err);
if(items){
db.collection("test").insert(items, function(err, items){
if(err) console.log("Error: " + err);
if(items) console.log("Data inserted successfully");
});
}
}
我不知道是否有比这更好的解决方案。