C# 操作mongodb子文档
var mongoString = "mongodb://jamesbing:123456@localhost:27017";
var host = new TMongodbHostModel
{
CollectionName = "ft_test",
ConnectionString = mongoString,
DatabaseName = "system_db"
}; var person = new Person
{
Id = ObjectId.GenerateNewId(),
Name = "jamesbing",
Address = new List<AddressItem>
{
new AddressItem {Add = "英国", Id = ObjectId.GenerateNewId(), Age = },
new AddressItem {Add = "美国", Id = ObjectId.GenerateNewId(), Age = }
}
};
// var addresult = TMongodbHelper.Add(host, person);
var collection = TMongodbHelper.GetMongoCollection<Person>(host.ConnectionString, host.DatabaseName, host.CollectionName); //Update ChildDocument
var address = "Address.$";
var result = collection.Update(
Query.And(new List<IMongoQuery>
{
Query.EQ("_id", new ObjectId("577b344a87aebb23c0fc767a")),
Query.EQ("Address._id", new ObjectId("577b344a87aebb23c0fc767b")),
}), Update.Set(address + ".Age", )); //Add ChildDocument
//单个
var result2 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415")
), Update.Push("Address", new AddressItem { Add = "山西省运城市", Id = ObjectId.GenerateNewId() }.ToBsonDocument())); //多个
var result3 = collection.Update(Query.EQ("_id", new ObjectId("577b262587aebb41fca9a3af")
), Update.PushEach("Address", new[] { new AddressItem { Add = "山西省运城市4", Id = ObjectId.GenerateNewId(), Age = }.ToBsonDocument(), new AddressItem { Add = "山西省运城市5", Id = ObjectId.GenerateNewId(), Age = }.ToBsonDocument() })); //Remove ChildDocument
var result4 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415")),
Update.Pull("Address", new { Id = new ObjectId("577b2d9387aebb2d7449367f") }.ToBsonDocument())); //Query ChildDocument
var query = Query.EQ("_id", new ObjectId("577b30e087aebb34ec170e7a"));
var q = Query.ElemMatch("Address"", Query.EQ("Add", "北京市"));
var result5= collection.FindOne(Query.And(query,q));
备注:
mongodb for C# SDK版本:1.11(可支持mongodb 3.2版本)
mongodb版本:3.0.6
C# 操作mongodb子文档的更多相关文章
- mongodb子文档查询
--子文档分页 -- 测试数据 db.childTests.insert({ "_id" : 1, "item" : "ABC", &quo ...
- 3.从Node.js操作MongoDB文档
1.更新文档结构,而非SQL 2.数据库更新运算符 在MongoDB中执行对象的更新时,需要确切的指定需要改变什么字段.需要如何改变.不像SQL语句建立冗长的查询字符串来定义更新. MongoDB中可 ...
- MongoDB 文档的查询和插入操作
MongoDB是文档型数据库,有一些专门的术语,和关系型DB相似,但也有差异,例如,Collection类似于关系型DB的Table,document类似于row,key/value pair类似于c ...
- MongoDB (八) MongoDB 文档操作
一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法. 语法 insert() 命令的基 ...
- MongoDB 大数据技术之mongodb中在嵌套子文档的文档上面建立索引
一.给collection objectid赋自定义的值 MongoDB Enterprise > db.testid.insert({_id:{imsi:"4567890123&qu ...
- mongoDB 文档操作_删
mongoDB 文档删除 MySQL对比 mysql delete from table where ... mongo db.collection.deleteOne(query) 删除函数 del ...
- mongoDB多级子文档查询
db.getCollection('product').find({'coverage':{'$elemMatch':{'plan':{'$elemMatch':{'iscoverage':{'$in ...
- MongoDB系列一(索引及C#如何操作MongoDB)
索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureIndex({"username": ...
- MongoDB(索引及C#如何操作MongoDB)(转载)
MongoDB(索引及C如何操作MongoDB) 索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureInd ...
随机推荐
- bbs树形打印(一)
前言:大家在bbs回帖时常常可以看到树形的回复形式. dfs设计 (1) 为使得Connection仅打开一次,因此以conn作为其中一个递归参数,在递归全程不关闭conn; (2)根据存入数据的树状 ...
- js-JavaScript高级程序设计学习笔记14
第十六章 HTML5脚本编程 1.跨文档消息传递.简称XDM,指的是来自不同域的页面间传递消息. XDM的核心是postMessage()方法,接收两个参数,一条消息和消息接收方来自哪个域的字符串. ...
- my97日期控件
http://www.seabroad.cn/cq/datepick/demo.htm 但是由于某些原因,担心这个网站不稳定,所以复制一下 一. 简介 1. 简介 目前的版本是:4.0 Prerele ...
- Visual Studio 2015出现Cannot find one or more components. Please reinstall the application.的问题解决
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE devenv.exe /resetuserdata devenv. ...
- Hibernate学习-在线书城后台管理系统的设计
写在前面:小编经历了昨天一晚上加今天一整天的“不吃不喝(夸张点…总之就是把时间全分享给TA了)”终于把程序的问题全部解决了,小编现在的心情十分的开森,开森,开森,Happy,话不多说,直接进入正题: ...
- dedecms /member/pm.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http:/ ...
- C#检测驱动是否安装的问题
#region 检测CCD驱动是否安装成功 string path = @"C:\WINDOWS\system32\drivers\UsbCamIF.sys"; //驱动的默认安装 ...
- web开发 虚拟目录映射
A 当服务器和 web应用不在一个目录下 $CATALINA_BASE/conf/catalina/localhost/ 文件夹下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的 ...
- Linux爆新漏洞,长按回车键70秒即可获得root权限
漏洞来源这个安全问题来源于Cryptsetup存在的一个漏洞(CVE-2016-4484).Cryptsetup是在Linux统一密钥设置(Linux Unified Key Setup, LUKS) ...
- 初学angular-简单的angular指令
实现一个简单的input清空内容,且清空对应ngModel 前台部分 <html ng-app="hpapp"> <head> <meta chars ...