本节介绍简单的增删改查操作,首先作为程序员还是直接上代码来的直接点,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver.Builders;
using MongoDB.Driver.Linq;
namespace MyMongo.DataService
{
public class TestService
{
private readonly MongoHelper<TestObject> _test;
public TestService()
{
_test = new MongoHelper<TestObject>();
}
private int GetId()
{
//按自己的逻辑实现新增数据的ID获取
return 0;
}
//新增数据
public void AddTest(TestObject test)
{
if (test.ID == 0)
test.ID = GetId();
var query = new BsonDocument()
{
{"_id",test.ID},
{"Name",test.Name},
{"Description",test.Description}
};
_test.Collection.Insert(query);
}
//删除数据,mongo中删除后就再也找不到
public void RemoveTest(int Id)
{
var query = Query.EQ("_id", Id);
_test.Collection.Remove(query);
}
//linq方式查询数据
public TestObject GetTestByLinq(int Id)
{
return _test.Collection.AsQueryable<TestObject>().Where(o => o.ID == Id).FirstOrDefault();
}
public TestObject GetTest(int Id)
{
var query = Query.EQ("_id", Id);
return _test.Collection.FindOne(query);
}
//linq方式查询数据返回list,也可以用Find
public List<TestObject> GetTestObjectList(string name)
{
return _test.Collection.AsQueryable<TestObject>().Where(o => o.Name == name).ToList();
}
//更新数据
public void UpdateTestObject(TestObject test)
{
var query = Query.EQ("_id", test.ID);
var update = Update.Set("Name", devCompany.CompanyName)
.Set("Description", devCompany.Description);
_test.Collection.Update(query, update);
}
}
}
整个实现就是linq或类似调用EF的操作,其他的操作mongo的两个dll文件全都做,我们使用操作的时候很方便。