C# 操作mongodb子文档

 1           var mongoString = "mongodb://jamesbing:[email protected]:27017";
 2             var host = new TMongodbHostModel
 3             {
 4                 CollectionName = "ft_test",
 5                 ConnectionString = mongoString,
 6                 DatabaseName = "system_db"
 7             };
 8
 9             var person = new Person
10             {
11                 Id = ObjectId.GenerateNewId(),
12                 Name = "jamesbing",
13                 Address = new List<AddressItem>
14                 {
15                     new AddressItem {Add = "英国", Id = ObjectId.GenerateNewId(), Age = 12},
16                     new AddressItem {Add = "美国", Id = ObjectId.GenerateNewId(), Age = 19}
17                 }
18             };
19             //  var addresult = TMongodbHelper.Add(host, person);
20             var collection = TMongodbHelper.GetMongoCollection<Person>(host.ConnectionString, host.DatabaseName, host.CollectionName);
21
22             //Update ChildDocument
23             var address = "Address.$";
24             var result = collection.Update(
25                 Query.And(new List<IMongoQuery>
26                 {
27                    Query.EQ("_id", new ObjectId("577b344a87aebb23c0fc767a")),
28                     Query.EQ("Address._id", new ObjectId("577b344a87aebb23c0fc767b")),
29                 }), Update.Set(address + ".Age", 33));
30
31
32             //Add ChildDocument
33             //单个
34             var result2 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415")
35                ), Update.Push("Address", new AddressItem { Add = "山西省运城市", Id = ObjectId.GenerateNewId() }.ToBsonDocument()));
36
37             //多个
38             var result3 = collection.Update(Query.EQ("_id", new ObjectId("577b262587aebb41fca9a3af")
39              ), Update.PushEach("Address", new[] { new AddressItem { Add = "山西省运城市4", Id = ObjectId.GenerateNewId(), Age = 10 }.ToBsonDocument(), new AddressItem { Add = "山西省运城市5", Id = ObjectId.GenerateNewId(), Age = 9 }.ToBsonDocument() }));
40
41             //Remove ChildDocument
42             var result4 = collection.Update(Query.EQ("_id", new ObjectId("577b2d6787aebb198839d415")),
43                Update.Pull("Address", new { Id = new ObjectId("577b2d9387aebb2d7449367f") }.ToBsonDocument()));
44
45
46             //Query ChildDocument
47             var q = Query.And(new[]
48                {Query.EQ("_id", new ObjectId("577b30e087aebb34ec170e7a")), Query.EQ("Add", "北京市")});
49             var qresult = collection.Find(Query.ElemMatch("Address", q)).FirstOrDefault();
50             Console.ReadKey();

备注:

mongodb for C# SDK版本:1.10

mongodb版本:3.0.6

时间: 2024-11-05 14:14:04

C# 操作mongodb子文档的相关文章

C# 更新Mongodb子文档的实现方法

参考资源: 1:mongodb3.2系统性学习--3.update()操作 2: C# 操作mongodb子文档 代码如下: var mongoString = "mongodb://xxxxxxxxxxx:27017"; var host = new TMongodbHostModel { CollectionName = "ft_test", ConnectionString = mongoString, DatabaseName = "system_

mongodb子文档查询

方法一 --子文档分页 db.apRadioLinkQuality.aggregate( {$match: {"logTimeStamp" : {"$gte":1466477620000}}}, {$unwind: "$staDetailList"}, {$sort: {"staDetailList.logTime": -1}}, {$limit: 3}, {"$group": {"_id&quo

MongoDB (八) MongoDB 文档操作

一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基本语法如下: >db.COLLECTION_NAME.insert(document) 例子 >db.mycol.insert({ _id: ObjectId(7df78ad8902c), title: 'MongoDB Overview', description: 'MongoDB is no

MongoDB(索引及C#如何操作MongoDB方面......)

索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureIndex({"username":1, "age":-1})//创建复合索引 数字1表示username键的索引按升序存储,-1表示age键的索引按照降序方式存储. // 该索引被创建后,基于username和age的查询将会用到该索引,或者是基于username的查询也会用到该索引,但是只是基于age的查询将不会用到该复

MongoDB(索引及C#如何操作MongoDB)(转载)

MongoDB(索引及C如何操作MongoDB) 索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureIndex({"username":1, "age":-1})//创建复合索引 数字1表示username键的索引按升序存储,-1表示age键的索引按照降序方式存储. // 该索引被创建后,基于username和age的查询将会用到该索引,或者是基于username的查询也会

MongoDB 文档字段增删改

MongoDB 基于CRUD(create,read,update,delete)方式实现了对集合上的文档进行增删改查.对于集合上字段的增删改,可以使用set或者unset修改器来实现.也可以使用文档替换的方式来实现.本文主要描述集合上字段的增删改,以及基于选项upsert的更新. a.语法描述 db.collection.update( <query>,                  //查询或过滤条件 <update>,                 //修改器(被修改键

Ruby操作MongoDB(进阶)-CRUD操作

MongDB数据库的使用离不开CRUD操作.什么是CRUD,就是创建文档,读取文档信息,更新文档和删除文档. key-value键值对标记 在MongoDB的Ruby驱动中,Key_value键值多次出现.而且有时会出现语法上的巧合,这取决于在使用的Ruby版本中如何申明. 在文档创建步骤中,1.9及之后版本支持以下语法: document={name:"Tom",age:20}. 但是如果你使用的是2.2或者更高的版本,你可以用双引号将你的key包起来.如: document={&q

Python操作Mongodb

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 1.创建连接 import pymongo client = pymongo.MongoClient('mongodb:/

PHP操作MongoDB技术总结

<?php /** * PHP操作MongoDB学习笔记 */ //************************* //** 连接MongoDB数据库 **// //************************* //格式=>("mongodb://用户名:密码 @地址:端口/默认指定数据库",参数) $conn = new Mongo(); //可以简写为 //$conn=new Mongo(); #连接本地主机,默认端口. //$conn=new Mongo(&