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; 
}
Другие вопросы по тегам