在mongo shell中批量插入数据的有关问题

在mongo shell中批量插入数据的问题
mongodb权威指南中说到,批量插入的性能比循环单次插入要快。所以,我尝试了以下几种方式来测试 :
1、
db.books.insert([{"_id":ObjectId(),"name":"mongodb"},{"_id":ObjectId(),"name":"node.js"}]);
结论:不能按预期的执行,去掉_id,结果一样

2、
var x={"name":"mongodb"};var y={"name":"node.js"};var arr=[];arr.push(x);arr.push(y);
db.books.insert(arr);
结论:不能按预期的执行,与上面的结果一致。

我真的是搞不明白,有知道的朋友吗?谢谢。

------解决方案--------------------
for(var i=0;i<100;i++) db.test.insert({uid:i,uname:’nosqlfan’+i});
------解决方案--------------------
shell中好像没有批量插入的命令,驱动中有。
------解决方案--------------------
需要相关驱动支持
------解决方案--------------------
Java code


//批量写入
            
            DBObject[] blogArr = new DBObject[10000];
            BasicDBObject blog = null;
            
            for(int i =0; i < 10000; i ++){
                
                blog = new BasicDBObject();
                
                blog.put("title", "blogTitle"+i);
                
                blog.put("content", "blogContent"+i);
                
                blogArr[i]=blog;
                
            }
            
            WriteResult re = coll.insert(blogArr);

------解决方案--------------------
List datas = new ArrayList();
for(int i=0;i<size;i++){//mainTotal,bei4Total,bei5Total,bei6Total各循环一次
BasicDBObject user = new BasicDBObject();
ht.put(p+"num"+i+k,real.get(i+k));
ht.put(p+"taskid"+i+k, taskBean.getId());
ht.put(p+"taskname"+i+k, taskBean.getTaskname());
ht.put(p+"tasktype"+i+k,taskBean.getTasktype());
ht.put(p+"pipeid"+i+k,pipeid);
if(taskBean.getStarted()!=0){
ht.put(p+"started"+i+k,taskBean.getStarted());
}else{
ht.put(p+"started"+i+k, 0);
}
ht.put(p+"charge"+i+k, contentnum);
ht.put(p+"content"+i+k, taskBean.getContent());
ht.put(p+"replies"+i+k, taskBean.getProductid());
int d = 0;

// user.put("id", new Random().nextInt(99999)+100000);
user.put("taskid", ht.get(p+"taskid"+i+k)+"");
// user.put("taskname", (String)ht.get(p+"taskname"+i+k));
user.put("tasktype", (String)ht.get(p+"tasktype"+i+k));
user.put("num", Long.parseLong((String)ht.get(p+"num"+i+k)));
user.put("pipeid", Integer.parseInt(ht.get(p+"pipeid"+i+k)+""));
user.put("started", ht.get(p+"started"+i+k));
user.put("created", new Date().getTime());
DBObject statObj = new BasicDBObject();
statObj.put("status", 0);
statObj.put("msgid", "");
statObj.put("time", new Date().getTime());
user.put("status", statObj);
user.put("charge", String.valueOf(ht.get(p+"charge"+i+k)));
user.put("content", (String)ht.get(p+"content"+i+k));
user.put("replies", String.valueOf(ht.get(p+"replies"+i+k)));
DBObject reportObj = new BasicDBObject();