2016-03-29 14 views
1

Ich habe eine Sammlung mit 100.000.000 Dokumenten, von denen ich jede Minute Aktualisierungen durchführe. So etwas wie das:Wie ändern Sie die Schreibanliegen Ebenen?

var writeOptions = new BulkWriteOptions { IsOrdered = false }; 

// Applying several operations within the one request. 
operationList.Add(new UpdateOneModel<JobInfoRecord>(Builders<JobInfoRecord>.Filter.Eq("_id", document.JobId), 
           Builders<JobInfoRecord>.Update.Set("JobInfo", newInfo))); 

await jobInfoDocuments.BulkWriteAsync(operationList, writeOptions); 

Wie kann ich die Schreibanliegen Ebene von 1 (als Standard) auf 0?

Antwort

1

Verwenden Sie die WithWriteConcern-Methode für Ihr MongoCollection-Objekt, um ein neues IMongoCollection-Objekt abzurufen, das mit den angegebenen Schreibanforderungen abgefragt wird.

var jobInfoDocumentsCareless = jobInfoDocuments.WithWriteConcern(WriteConcern.Unacknowledged); 
await jobInfoDocumentsCareless.BulkWriteAsync(operationList, writeOptions); 
+0

'WriteConcern.Unacknowledged' ist eine 0 Sorge Ebene? Welches ist standardmäßig 'WriteConcern.Acknowledged'? –

+0

@ivan_petrushenko WriteConcern.Unacknowledged entspricht "{w: 0}". Anerkannt bedeutet laut [der Dokumentation] (http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html), "Warte auf Bestätigung, benutze den Standard-Schreibzugriff, der auf dem Server konfiguriert wurde". Es kommt also auf die Mongod-Konfiguration an. Wenn Sie sicher sein wollen, können Sie auch [WriteConcern-Konstruktoren] (http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#WriteConcern-int-) verwenden, um Ihr eigenes WriteConcern-Objekt zu instanziieren mit benutzerdefinierten Einstellungen für w, Journal, fsync und Timeout. – Philipp

+0

Also, wenn ich den Prozess der Aktualisierung beschleunigen möchte, muss ich '{w: 0}' habe ich richtig? –

Verwandte Themen