NuGet MongoDB.Driver
using MongoDB.Bson;
using MongoDB.Driver;
using System;
namespace MongoTest
{
public class MongoHp
{
static MongoHp()
{
MongoDB.Bson.Serialization.BsonSerializer.RegisterSerializer(typeof(DateTime), new MongoDB.Bson.Serialization.Serializers.DateTimeSerializer(DateTimeKind.Local));
}
public static Tuple<MongoClient, IMongoDatabase, IMongoCollection<BaseCollect<T>>> GetCollection<T>() where T : class
{
MongoUrlBuilder bd = new MongoUrlBuilder();
bd.Server = new MongoServerAddress("localhost", 27017);
bd.MinConnectionPoolSize = 9;
bd.MaxConnectionPoolSize = 99;
var url = bd.ToMongoUrl();
var client = new MongoClient(url);
var database = client.GetDatabase("wms");
var collection = database.GetCollection<BaseCollect<T>>(typeof(T).Name);
return Tuple.Create(client, database, collection);
}
}
public class BaseCollect<T> where T : class
{
public BaseCollect(T t)
{
this.Value = t;
}
public ObjectId Id { get; set; }
public T Value { get; set; }
public void InsertDb()
{
MongoHp.GetCollection<T>().Item3.InsertOne(this);
}
public UpdateResult UpdateDb(IMongoCollection<BaseCollect<T>> collection = null)
{
if (collection == null)
{
return MongoHp.GetCollection<T>().Item3.UpdateOne(i => i.Id == this.Id, Builders<BaseCollect<T>>.Update.Set(i => i.Value, this.Value));
}
return collection.UpdateOne(i => i.Id == this.Id, Builders<BaseCollect<T>>.Update.Set(i => i.Value, this.Value));
}
}
class Usr
{
public ObjectId Id { get; set; }
public string label { get; set; }
public DateTime cre_time { get; set; }
public double level { get; set; }
public Dept OfDept { get; set; }
}
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/281383.html