2017-02-20 34 views
2

Я хочу, чтобы сделать массовое обновление, как это:Как выполнить обновление насыпных документов с несколькими фильтрами в MongoDB 3 с Java

 List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>(); 
    writes.add(
      new UpdateOneModel<Document>(
        new Document("car", "Ferrari"), // filter 
        new Document("$set", new Document("color", "Black")) // update 
      ) 
    ); 

Но я хочу, чтобы ввести более одного фильтра. Я думал, что это будет что-то вроде этого:

 List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>(); 
    writes.add(
      new UpdateOneModel<Document>(
        new Document(and(eq("car", "Ferrari"), eq("color", "Red"), // filter 
        new Document("$set", new Document("color", "Black")) // update 
      ) 
    ); 

Но это, очевидно, не работает, и я не могу найти его в любом месте. Кто-нибудь знает, есть ли способ сделать это? Спасибо :)

ответ

0

Используйте Append, чтобы добавить другие ключей:

List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>(); 
writes.add(
    new UpdateOneModel<Document>(
     new Document("car", "Ferrari").append("color", "Red"), // filter 
     new Document("$set", new Document("color", "Black")) // update 
    ) 
); 
+1

Он работал большой, действительно спасибо !!! –