.Net 使用 MongoDB

安装nuget包

MongoDB.Driver

简单代码

csharp 复制代码
using MongoDB.Bson;
using MongoDB.Driver;
using System.Buffers;
using System.Collections.Concurrent;
using System.Diagnostics;

namespace ConsoleApp4
{
    internal class Program
    {

      
        static void Main(string[] args)
        {
           var client = new MongoClient("mongodb://192.168.11.137");
           var database = client.GetDatabase("MyTestDB");
            var collection = database.GetCollection<UserInfo>("UserInfo");
            collection.InsertOne(new UserInfo
            {
                Name = "Jack",
                CreateTime = DateTime.Now,
            });

            var query = collection.Find(m => m.Name.Contains("Ja")).SortByDescending(m=>m.Name).ThenBy(m=>m.CreateTime).Skip(0).Limit(20).ToListAsync();
        }

     
    }

    class UserInfo
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
        public DateTime CreateTime { get; set; }
    }
}

public ObjectId Id { get; set; } 必须要在model类中定义,否则查询会报错

UpdateOne

csharp 复制代码
var database = client.GetDatabase("MyTestDB2");
            var collection = database.GetCollection<UserInfo>("UserInfo");

            var data = collection.Find(m => true).FirstOrDefault();
            data.Balance = 0;

            var update = Builders<UserInfo>.Update.Set(m=>m.Balance, data.Balance);
            foreach (BsonElement item in data.ToBsonDocument())
            {
                update = update.Set(item.Name, item.Value);
            }

            collection.UpdateOne(m => true, update);

为集合创建索引

csharp 复制代码
   			var database = client.GetDatabase("MyTestDB");
            var collection = database.GetCollection<UserInfo>("UserInfo");
            collection.Indexes.CreateOne( Builders<UserInfo>.IndexKeys.Hashed(m=>m.Id)); //设置Id为哈希类型,并建立索引,哈希类型是否以后分片集群做准备的
相关推荐
编程充电站pro14 分钟前
SQL 面试高频:INNER JOIN vs LEFT JOIN 怎么考?
数据库·sql
这周也會开心16 分钟前
SQL-窗口函数做题总结
数据库·sql
间彧32 分钟前
TiDB详解与Spring Boot实战指南
数据库
极限实验室32 分钟前
Easysearch 字段'隐身'之谜:source_reuse 与 ignore_above 的陷阱解析
数据库·redis
2301_7720935640 分钟前
tuchuang_后端_前端_注册登录
数据库·后端·网络协议·mysql·wireshark
武子康1 小时前
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)
java·数据库·mysql·spring·性能优化·系统架构·事务
间彧1 小时前
脏读、不可重复读、幻读详解与对比
数据库
间彧1 小时前
数据库事务隔离级别详解
数据库
fwerfv3453452 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python