{
"assertion" : "need most members up to reconfigure, not ok : ChrisCheung
-PC:20721",
"assertionCode" : 13144,
"errmsg" : "db assertion failure",
"ok" : 0
}
到目前位置我们已经有三台正常运行mongodb服务器,并配置为Replica Sets同步模式。
程序实现,下面是我写的一个简单类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Bson;
namespace FileUtility
{
public class DocHelper
{
private string connStr = "";
public string ConnStr
{
get
{
if (string.IsNullOrEmpty(connStr))
{
throw new ArgumentNullException("Connection string did not specify!");
}
return connStr;
}
}
public DocHelper()
{
connStr = System.Configuration.ConfigurationManager.AppSettings["FileDb"];
}
public DocHelper(string connectionString)
{
this.connStr = connectionString;
}
///
/// save document conent
///
/// file content
/// file id in mongodb database
public string AddDoc(byte[] content)
{
MongoServer server = MongoServer.Create(this.ConnStr);
try
{
Doc doc = new Doc() { ID = Guid.NewGuid().ToString(), data = content };
server.Connect();
MongoDatabase db = server.GetDatabase("ecDocs");
MongoCollection docs = db.GetCollection("ecFiles",SafeMode.True);
docs.Insert(doc);
return doc.ID.ToString();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (server != null)
server.Disconnect();
}
}
///
/// delete doc from the mongodb server
///
public void DeleteDoc(string docID)
{
MongoServer server = MongoServer.Create(this.ConnStr);
try
{
server.Connect();
MongoDatabase db = server.GetDatabase("ecDocs");
MongoCollection docs = db.GetCollection("ecFiles", SafeMode.True);
var queryDoc = Query.EQ("_id", docID);
docs.Remove(queryDoc);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (server != null)
server.Disconnect();
}
}
///
/// get the doc content from mongodb
///
/// doc id in mongodb
/// document content
public Doc GetDoc(string docID)
{
MongoServer server = MongoServer.Create(this.ConnStr);
try
{
server.Connect();
MongoDatabase db = server.GetDatabase("ecDocs");
MongoCollection docs = db.GetCollection("ecFiles", SafeMode.True);
Doc doc = docs.FindOneById(docID);
return doc;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (server != null)
server.Disconnect();
}
}
}
}
实体类:
using System;
using System.Collections.Generic;
using System.Text;
using MongoDB.Bson.DefaultSerializer;
using MongoDB.Bson;
namespace FileUtility
{
public class Doc
{
[BsonId]
public string ID { get; set; }
public byte[] data { get; set; }
}
}