MongoDB DBCollection.insert() возвращает значение null как WriteResult?
Будет ли вставлять (список) вернуть ноль?
WriteResult result = collection.insert(List<DBObject>);
result.getError() -->Throws NullPointeException
В приведенном фрагменте, что может привести к возвращению нулевого значения для WriteResult?
2 ответа
Вероятно, он вернул бы исключение NullPointerException, поскольку, по крайней мере, метод ожидает список, в котором есть хотя бы один ключ для чтения, чтобы успешно вставить что-то. Иначе это будет вставка, технически, несуществующего документа.
Можете ли вы попробовать предоставить BasicDBList, который содержит экземпляры BasicDBObject.
Например:
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;
}