.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为哈希类型,并建立索引,哈希类型是否以后分片集群做准备的
相关推荐
heart000_12 小时前
MySQL事务与锁机制详解:确保数据一致性的关键【MySQL系列】
数据库·mysql
一眼青苔2 小时前
MySQL 如何判断某个表中是否存在某个字段
数据库·mysql
西柚小萌新2 小时前
【大模型:知识图谱】--3.py2neo连接图数据库neo4j
数据库·知识图谱·neo4j
wangfenglei1234563 小时前
mybatis打印完整的SQL,p6spy
数据库·sql·mybatis
__风__3 小时前
PostgreSQL ERROR: out of shared memory处理
数据库·postgresql
占星安啦3 小时前
一个html实现数据库自定义查询
java·前端·javascript·数据库·动态查询
天空之城夢主3 小时前
MySQL 全量、增量备份与恢复
数据库·mysql·oracle
Elastic 中国社区官方博客3 小时前
连接关键点:使用 ES|QL 联接实现更丰富的可观测性洞察
大数据·数据库·sql·elasticsearch·搜索引擎·全文检索
元闰子3 小时前
AI Agent需要什么样的数据库?
数据库·人工智能·后端
什么都想学的阿超3 小时前
【PostgreSQL 02】PostgreSQL数据类型革命:JSON、数组与地理信息让你的应用飞起来
数据库·postgresql·json