2016-03-07 52 views
1

这是一段代码段,我将PLC数据插入到MongoDB中,但我不确定WriteConcern必须在哪里实现?必须在哪里写WriteConcern?

var connectionString = "mongodb://10.52.124.186:27017/"; 

    // Establish connection from the client to the server 
    var client = new MongoClient(connectionString); 

    var server = client.GetServer(); 

    // Connect to the MongoDB specified for the GDS on the Mongodb 
    var mongoDB = server.GetDatabase("test_database"); 

    // create a collection called sample 
    var collection = mongoDB.GetCollection<sample>("sample"); 

    sample a = new sample(); 

    // Access the socket via which PLC has sent the data 
    a.Parameter = data; 

    collection.Insert(a); 

回答

1

有几个级别,您可以在其中声明所需的默认WriteConcern级别。

  • 在MongoClient对象的设置
    • 要么通过传递MongoSettings对象给构造
    • 或通过设置mongoClient.Settings.WriteConcern以后
  • 在数据库级别通过设置database.Settings.WriteConcern
  • 通过设置收集水平collection.Settings.WriteConcern
  • 通过使用采用WriteConcern对象的方法重载对每个单个数据库进行查询。

当然,这些设置中的每一个都可以被更低级别上的不同设置覆盖。那么你选择哪个级别取决于你想要做什么。

+0

@Philipp嗨, 如果我想WriteConcern在集合级别,将它像: 'collection.Insert(一,新MongoInsertOptions { WriteConcern = WriteConcern.WMajority } ); ' 这个? – Arjun

+0

@Arjun或者只是做'collection.Insert(a,WriteConcern.WMajority)'但是这只是针对这一个查询,而不是针对同一个集合的未来查询。 – Philipp

+0

好的,这很有道理。所以,我想要做的是在集合级别有一个WriteConcern,只要数据插入到集合中,MongoDB就会发送一个确认消息。你上面提到的陈述怎么可以改变成这样? – Arjun

相关问题