MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB java của ứng dụng khách WriteConcern không hoạt động

Đó là bởi vì collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED); tạo MongoCollection mới đối tượng có mối quan tâm viết khác mà bạn không bao giờ sử dụng:

Đoạn mã sau:

MongoCollection<Document> dup = collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED);
...
dup.insertOne(doc);

sẽ hoạt động, tức là không có lỗi phát sinh.

Đối với MongoClient mức độ ghi lo ngại không được truyền đến cơ sở dữ liệu:

public MongoDatabase getDatabase(final String databaseName) {
    MongoClientOptions clientOptions = getMongoClientOptions();
    return new MongoDatabaseImpl(databaseName, clientOptions.getCodecRegistry(), clientOptions.getReadPreference(),
            clientOptions.getWriteConcern(), createOperationExecutor());
}

Như bạn có thể thấy, mối quan tâm ghi được lấy từ MongoClientOptions bỏ qua giá trị tham số được truyền đến mongoClient.setWriteConcern() , có thể là một lỗi.

Vì vậy, để đặt mối quan tâm ghi toàn cục đúng cách, bạn sẽ phải tạo một bản sao của MongoClientOptions :

 MongoClientOptions options = MongoClientOptions
     .builder()
     .writeConcern(WriteConcern.UNACKNOWLEDGED)
     .build();

và chuyển nó vào MongoClient hàm tạo.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo:tìm tài liệu phụ không có ký hiệu dấu chấm

  2. Hàm tổng hợp MongoDB trong C #

  3. Mongoose Model.find không phải là một hàm?

  4. Tại sao Spring Data MongoDB không thể khởi tạo cấu trúc kiểu lồng nhau này?

  5. Làm cách nào để xuất bộ sưu tập sang CSV trong MongoDB?