之前用java实现标题的功能,很简单,因为springboot就用类似的功能,写代码的时候只需要做一些简单的配置就行。换到c#这边好像就不那么容易。如果哪位大佬知道用类型的框架,望不吝指教。
废话不多说,开始
1.NuGet导入dll
MongoDB.Bson
MongoDB.Core
MongoDB.Driver
MongoDB.Libmongocrypt
2.创建与MongoDB数据库,存储类型相对于的class。个人理解类似关系型数据库的持久层映射class。
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
public class TestUser
{
[BsonId]
private ObjectId _id { get; set; }
[BsonElement("name")]
private string name { get; set; }
[BsonElement("email")]
private string email { get; set; }
}
ObjectId是映射类型,加了注解[BsonId]。注解[BsonElement(“email”)]则是MongoDB的字段名称。
- 查库获取对象
using MongoDB.Driver;
public class Mongo
{
public List<T> GetMongoModel<T>()
{
//链接字符串
//例如: mongodb://localhost:27017/test
var mon = new MongoUrlBuilder(connstr);
string databaseName = mon.DatabaseName;
var client = new MongoClient(mon.ToMongoUrl());
var database = client.GetDatabase(databaseName);
var builderFilter = Builders<T>.Filter;
//以表名检索
var jobs = database.GetCollection<T>(tableName);
if (jobs == null) return null;
//设置filter 条件
var filter = builderFilter.Eq("name", name);
var list = jobs.Find<T>(filter).ToList();
return list;
}
}