mongodb for Linq(T)操作和Json操作BsonDocument
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace Core.DBContext
{
public class MongoDBbase<T> where T : class, new()
{
MongoClient client;
IMongoDatabase database;
public IMongoCollection<T> collection;
public MongoDBbase()
{
//var client = new MongoClient("mongodb://host:27017,host2:27017/?replicaSet=rs0");
client = new MongoClient("mongodb://39.96.34.12:27017");
database = client.GetDatabase("test");
Type type = typeof(T);
collection = database.GetCollection<T>(type.Name.ToLower());
}
public void traTest()
{
var session = client.StartSession();
try
{
var database = session.Client.GetDatabase("test");
session.StartTransaction(new TransactionOptions(
readConcern: ReadConcern.Snapshot,
writeConcern: WriteConcern.WMajority));
//IMongoCollection<Userinfo> collection = database.GetCollection<Userinfo>("userinfo");
// 切记,使用事务的时候,记得要给需要事务的指令里面吧当前会话的对象传入进去
// 因为事务的完整性是通过sessionid来做的
//collection.InsertOne(session, daqiao);
//throw new Exception("取消事务");
session.CommitTransaction();
}
catch (Exception ex)
{
//回滚
session.AbortTransaction();
}
}
public void DropDatabase()
{
client.DropDatabase("test");
}
public void InsertOne(T model)
{
collection.InsertOne(model);
}
public void InsertMany(params T[] modes)
{
collection.InsertMany(modes);
}
public IMongoQueryable<T> Select()
{
return collection.AsQueryable<T>();
}
public IMongoQueryable<T> Select(int pageIndex, int pageSize)
{
return collection.AsQueryable<T>().Skip(pageSize * (pageIndex - 1)).Take(pageSize);
}
public IMongoQueryable<T> Select(Expression<Func<T, bool>> predicate, Expression<Func<T, object>> keySelector, int pageIndex, int pageSize)
{
return collection.AsQueryable<T>().Where(predicate).OrderBy(keySelector).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
}
public void UpdateMany(Expression<Func<T, bool>> filter, UpdateDefinition<T> update)
{
collection.UpdateMany(filter, update);
}
public void UpdateOne(Expression<Func<T, bool>> filter, T update)
{
collection.ReplaceOne(filter, update);
}
public void DeleteMany(Expression<Func<T, bool>> filter)
{
collection.DeleteMany(filter);
}
}
}
-----------------------------json操作 BsonDocument--------------------------
using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Text;
namespace Zhaoxi.MongodbApp
{
public class JsonOperation
{
public static void Show()
{
var client = new MongoClient("mongodb://192.168.1.14:27017");
var database = client.GetDatabase("test");
var document = BsonDocument.Parse("{ a: 1, b: [{ c: 1 }],c: 'ff'}");
var document1 = BsonDocument.Parse("{ a: 6666}");
database.GetCollection<BsonDocument>("userinfo").InsertOne(document1);
database.GetCollection<BsonDocument>("userinfo").InsertOne(document);
}
}
}
相关文章
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- json.net(Json.NET - Newtonsoft)利用动态类解析json字符串
- JSON入门之二:org.json的基本使用方法
- mongodb对数组元素及内嵌文档进行增删改查操作(转)
- Linux下安装MongoDB
- 基于jsp+javabean+servlet+mongodb 增删改查
- Mongodb开启认证时的备份和恢复(mongodump 和mongorestore )
- 【Java】+【JSON】+对比两个json对象是否完全一样
- 【Json】在线JSON转MySQL建表语句工具
- 使用json-lib进行Java和JSON之间的转换【转载】
- mongodb之图聚合查询 之图查询$graphLookup
- SwiftUI JSON之List读取Bundle、解析、显示本地Json文件
- 前后台JSON传值得一个问题和异常处理net.sf.json.JSONException: Unquotted string '"name"'
- Json.net操作json
- MongoDB:如何正常关闭服务(转)
- mongodb索引
- C#-MongoDB Driver $in
- MongoDB 更新文档 update
- JSON和GSON操作json数据