在mongodb函数中插入很多动态查询

时间:2017-04-06 21:13:50

标签: mongodb

我正在尝试在mongoDB database中保存文档。但是我无法做到这一点。

以下是我的代码 -

db.system.js.save({ _id:"createMultipleUsers", value:
    function() { 
        try {
            var query="";
            for(var i=0;i<2;i++ ) { 
                if(i !=0) {
                    query=query+",";  
                }
                query=query+"{ _id: "+i+", mobileNumber: "+i+", emailID: \"email"+i+"@gmail.com\"}";
            } 
            query="[ "+query+" ]";
           //print(query);
           db.User.insertMany(query);
       } catch (e) {
           print (e);
       }
   } 
});

感谢任何帮助/提示。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

好吧,正如我在db.system.js.save中看到的那样,您将字符串值传递给insertMany,而建议传递给JSON文档 -

示例 -

try {
   db.products.insertMany( [
      { item: "card", qty: 15 },
      { item: "envelope", qty: 20 },
      { item: "stamps" , qty: 30 }
   ] );
} catch (e) {
   print (e);
}

来源 - https://docs.mongodb.com/v3.2/reference/method/db.collection.insertMany/#examples

类似问题 - How to insert multiple documents at once in MongoDB through Java

在您的案例中

转换为JSON字典/文档后插入查询 -

//parse string query into json format.
db.User.insertMany(JSON.parse(query));

希望这会对您有所帮助:)

随意拍摄您的疑问。

答案 1 :(得分:0)

db.system.js.save({ _id:"createMultipleUsers", value:
    function() { 
        try {
            var query="";
            for(var i=0;i<2;i++ ) { 
                if(i !=0) {
                    query=query+",";  
                }
                query=query+"{ \"_id\": "+i+", \"mobileNumber\": "+i+", \"emailID\": \"email"+i+"@gmail.com\"}";
            } 
            query="[ "+query+" ]";
           print(query);
           db.User.insertMany(JSON.parse(query));
       } catch (e) {
           print (e);
       }
   } 
});