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 ...
随机推荐
- iOS之类的本质
1.本质 类的本质其实也是一个对象(类对象) 程序中第一次使用该类的时候被创建,在整个程序中只有一份. 此后每次使用都是这个类对象,它在程序运行时一直存在. 类对象是一种数据结构,存储类的基本信息:类 ...
- Linux下C程序的内存布局
参考下列书籍中的对应章节: <Linux高级程序设计(第3版)>第3章Linux进程存储管理.相关视频:一.二. <C专家编程>第6章 运动的诗章:运行时数据结构. <U ...
- PHP Opcode内核实现 - [ PHP内核学习 ]
catalogue . Opcode简介 . PHP中的Opcode . opcode翻译执行(即时解释执行) 1. Opcode简介 opcode是计算机指令中的一部分,用于指定要执行的操作, 指令 ...
- bash 操作 sqlite3
首先,这是个奇怪的需求...但是遇到了.我参考后文链接里的方法,做了自己的. 表是自己手动建的,数据库名字叫 new.db: create table test (sn varchar(), name ...
- 关于当一个C#工程移植到另一台机子上(win7)上时,程序报错。dll没有被指定在Windows上运行,或者它包含错误。请尝试使用原始安装媒体重新安装程序。。。。。。
, 解决方法:通过从网上重新下载dll文件 拷贝到报错的目录下,替换掉原有的dll,可以正确运行.
- 上班遇到的——关于Web安全
恩只是流水账,内容写得可能比较随性,权当记录自己的成长:-D 今天经理特地开会跟我们讲了一下关于web安全的东西,SQL注入.文本编辑器.上传.本身程序权限管理漏洞 感觉好高级,做安全的人厉害,黑客也 ...
- 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Section 5 The accuracy of simple random samples
Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- MyBatis详解 与配置MyBatis+Spring+MySql
MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本 ...
- PHP之:多图上传
撰写日期:2016-6-30 15:17:35 Thursday 参考 http://a3147972.blog.51cto.com/2366547/1381136 (08-05ThinkPHP+sw ...
- python小打小闹之简陋版BBS
闲的蛋疼,索性写个东西玩,于是,写个类似于BBS的念头就开始了. 我们考虑到需要实现的功能: 1 只有登陆的用户才可以点赞,如果没有登陆,那么不可以点赞,点赞次数只可以为1. 2 只有登陆的用户可以评 ...