-1

insert(List) 会返回 null 吗?

WriteResult result = collection.insert(List<DBObject>);
result.getError()  -->Throws NullPointeException

在上面的代码片段中,什么可能导致 WriteResult 返回 null?

4

2 回答 2

0

它可能会返回 NullPointerException,因为至少该方法需要一个列表,该列表至少有一个要读取的键才能成功插入某些内容。否则,从技术上讲,它将插入一个不存在的文档。

于 2013-05-03T12:00:51.440 回答
0

您可以尝试提供一个包含 BasicDBObject 实例的 BasicDBList。

例如:

BasicDBObject updateObject = new BasicDBObject();
BasicDBList dbList = createList(objects);
updateObject.append("$push", new BasicDBObject("collection", dbList));

WriteResult result = collection.insert(dbList);

...
private BasicDBList createList(List<SampleObject> list) {
  BasicDBList result = new BasicDBList();
  for (SampleObject obj: list) {
    BasicDBObject dbObject = new BasicDBObject();
    dbCar.append("name", obj.getName()); //for exmaple
    result.add(dbObj);
  }

 return result; 
}
于 2013-05-03T10:18:45.397 回答