Java 插入ArrayList mongodb
我正在尝试批量插入100个文档对象。我是否错误地使用了insert语句Java 插入ArrayList mongodb,java,mongodb,Java,Mongodb,我正在尝试批量插入100个文档对象。我是否错误地使用了insert语句 Mongo mongoClient = new Mongo( "localhost" , 27017 ); DB db = mongoClient.getDB( "user" ); DBCollection coll = db.getCollection("test"); BasicDBObject doc = new BasicDBObject("userName","James").app
Mongo mongoClient = new Mongo( "localhost" , 27017 );
DB db = mongoClient.getDB( "user" );
DBCollection coll = db.getCollection("test");
BasicDBObject doc = new BasicDBObject("userName","James").append("random1", "feeof").append("random2", "ofeijfefe");
List<DBObject> postsList = new ArrayList<DBObject>();
for ( int i = 0; i != 100; i++)
{
postsList.add(doc);
}
coll.insert(postsList);
Mongo-mongoClient=new-Mongo(“localhost”,27017);
DB=mongoClient.getDB(“用户”);
DBCollection coll=db.getCollection(“测试”);
BasicDBObject doc=新的BasicDBObject(“用户名”、“詹姆斯”).append(“随机数1”、“feeof”).append(“随机数2”、“ofeifefe”);
List postsList=new ArrayList();
对于(int i=0;i!=100;i++)
{
postsList.add(doc);
}
coll.insert(postsList);
它没有插入任何内容,当我检查最后一行时,它将值显示为N/A。我认为这就是这里发生的情况 对象
doc
被添加到postsList
100次。请记住,在列表中的所有100个位置都是同一个对象
Mongo为文档创建一个\u id
属性,如果它还没有。一旦它将此属性放入列表中的第一个basicdboObject
,列表中的每个其他条目都会使用相同的\u id
进行修改
我相信,因为这个\u id
属性对于列表中的所有条目(类似于主键)都是相同的,所以只会插入第一个条目
您可以通过将文档的副本添加到列表中来解决此问题。试试这个:
for (int i = 0; i < 100; i++) {
postsList.add((BasicDBObject) doc.copy());
}
for(int i=0;i<100;i++){
postsList.add((BasicDBObject)doc.copy());
}
如何检查它没有插入任何内容?控制台中的db.test.count()您可能找不到正确的数据库。在查看计数之前,您是否执行了usedb user
?edit*Yes检查了这一点,并不是因为这一点。很抱歉,应该是use user
。