MongoDB的增删改查
本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsonDcument插入即可: 方式1,直接构造: MongoServer dbserver = new MongoClient(connectionStr)
本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动)
1.增
增加操作是最简单的,构造bsonDcument插入即可:
方式1,直接构造:
MongoServer dbserver = new MongoClient(connectionStr).GetServer(); MongoDatabase db = dbserver.GetDatabase(dbName); MongoCollection collection = db.GetCollection(collectionName); dbserver.Connect(); BsonDocument doc = new BsonDocument(); doc["Age"] = Int32.Parse(txt_Age.Text); doc["Name"] = txt_Name.Text; doc["Num"] = txt_Num.Text; doc["Introduction"] = txt_Introduction.Text; collection.Insert(doc);
方式2,通过实体构造:
1 var student = new Student 2 { 3 Age = Int32.Parse(txt_Age.Text), 4 Name = txt_Name.Text, 5 Num = txt_Num.Text, 6 Introduction = txt_Introduction.Text 7 }; 8 9 collection.Insert(student);
2.删
关键就是构造删除条件,通过api查到Remove方法的签名:public virtual WriteConcernResult Remove(IMongoQuery query);在网上看到好多写法都是在Remove中传入BsonDocument对象,但是我查源码发现bsonDocument根本没有实现IMongoQuery接口,实现这个接口的是一个叫做QueryDocument的类,同时QueryDocument也继承了BsonDocument对象,而构造BsonDocument和QueryDocument的方式超级多,各种方便,简单写几种:
比如构造如下条件,delete from table where?Age>15 &Age
相应的mongodb条件写法:{Age:{$gt:15,$lt:20}},下面就来构造这个条件;
方式1,直接通过bsonDocument构造:
BsonDocument doc = new BsonDocument { { "Age",new BsonDocument{{"$gte",10},{"$lte",15}}} };
方式2,直接通过QueryDocument构造:与1类似
1 QueryDocument query = new QueryDocument 2 { 3 { "Age",new QueryDocument{{"$gte",10},{"$lte",15}}} 4 };
方式3,直接通过反序列化json字符串:
1 string json = "{ Age:{$gte:10,$lte:15}}"; 2 var queryJson = BsonSerializer.Deserialize(json, typeof(BsonDocument)) as BsonDocument;
个人觉得这种方式挺好,如果你mongodb命令熟悉,这种方式挺适合构造复杂条件的
方式4:通过Query类,Query是静态类,封装了各种逻辑条件方法,有泛型和泛型两种方式:
1 var query1 = Query.GT("Age", 10);//大于10;greater than 10 2 var query2 = Query.LT("Age", 15);//小于15;less than 15 3 var query = Query.And(query1, query2);
但是更好的要数泛型方式了:
var query1 = Query.GTE(t => t.Age, 10); var query2 = Query.LTE(t => t.Age, 15); //var query = Query.And(Query.GTE("Age", 10), Query.LTE("Age", 15)); var query = Query.And(query1, query2);
最后执行Remove方法即可;
3.查
数据显示是必不可少的,查询操作中的条件过滤在删除中已说过,不再赘述,这里先写两种方式(ps:现在了解太浅,只能以笔记形式记录下)
方式1:通过FindAllAs方式或者FindAs方法
1 var query1 = Query.GTE(t => t.Age, 10); 2 var query2 = Query.LTE(t => t.Age, 15); 3 var query = Query.And(query1, query2); 4 5 var list = collection.FindAs(typeof(Student), query);
方式2:通过linq
1 var qList = (from c in collection.AsQueryable() 2 where c.Age > 10 && c.Age <p class="copyright"> 原文地址:MongoDB的增删改查, 感谢原作者分享。 </p>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

要使用 Navicat 连接 MongoDB,您需要:安装 Navicat创建 MongoDB 连接:a. 输入连接名称、主机地址和端口b. 输入认证信息(如果需要)添加 SSL 证书(如果需要)验证连接保存连接

.NET 4.0 用于创建各种应用程序,它为应用程序开发人员提供了丰富的功能,包括:面向对象编程、灵活性、强大的架构、云计算集成、性能优化、广泛的库、安全性、可扩展性、数据访问和移动开发支持。

在无服务器架构中,Java函数可以与数据库集成,以访问和操作数据库中的数据。关键步骤包括:创建Java函数、配置环境变量、部署函数和测试函数。通过遵循这些步骤,开发人员可以构建复杂的应用程序,无缝访问存储在数据库中的数据。

本文介绍如何在Debian系统上配置MongoDB实现自动扩容,主要步骤包括MongoDB副本集的设置和磁盘空间监控。一、MongoDB安装首先,确保已在Debian系统上安装MongoDB。使用以下命令安装:sudoaptupdatesudoaptinstall-ymongodb-org二、配置MongoDB副本集MongoDB副本集确保高可用性和数据冗余,是实现自动扩容的基础。启动MongoDB服务:sudosystemctlstartmongodsudosys

本文介绍如何在Debian系统上构建高可用性的MongoDB数据库。我们将探讨多种方法,确保数据安全和服务持续运行。关键策略:副本集(ReplicaSet):利用副本集实现数据冗余和自动故障转移。当主节点出现故障时,副本集会自动选举新的主节点,保证服务的持续可用性。数据备份与恢复:定期使用mongodump命令进行数据库备份,并制定有效的恢复策略,以应对数据丢失风险。监控与报警:部署监控工具(如Prometheus、Grafana)实时监控MongoDB的运行状态,并

直接通过 Navicat 查看 MongoDB 密码是不可能的,因为它以哈希值形式存储。取回丢失密码的方法:1. 重置密码;2. 检查配置文件(可能包含哈希值);3. 检查代码(可能硬编码密码)。

PiNetwork即将推出革命性移动银行平台PiBank!PiNetwork今日发布重大更新Elmahrosa(Face)PIMISRBank,简称PiBank,它将传统银行服务与PiNetwork加密货币功能完美融合,实现法币与加密货币的原子交换(支持美元、欧元、印尼盾等法币与PiCoin、USDT、USDC等加密货币的互换)。究竟PiBank有何魅力?让我们一探究竟!PiBank主要功能:一站式管理银行账户和加密货币资产。支持实时交易,并采用生物特

排序索引是 MongoDB 索引的一种,允许按特定字段对集合中的文档排序。创建排序索引可以快速排序查询结果,无需额外的排序操作。优势包括快速排序、覆盖查询和按需排序。语法为 db.collection.createIndex({ field: <sort order> }),其中 <sort order> 为 1(升序)或 -1(降序)。还可以创建对多个字段进行排序的多字段排序索引。
