2017-02-20 52 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

使用追加添加其他鍵:

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

這偉大的工作,真的很謝謝你! –