博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[MongoDB]对数组操作
阅读量:6341 次
发布时间:2019-06-22

本文共 2928 字,大约阅读时间需要 9 分钟。

摘要

在实际开发中遇到更新某个document中的数组的值,这里做一下记录。

这里使用的驱动为

using MongoDB.Bson;

using MongoDB.Driver;

相关文章

demo

using MongoDB.Bson;using MongoDB.Driver;using MongoDB.Driver.Builders;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Wolfy.Mongodb{    class Program    {        static void Main(string[] args)        {        }    }    class MongoHelper    {        private static readonly string _db = "";        private static readonly string _col = "";        private static readonly string _ip = "";        private static readonly string _user = "";        private static readonly string _pwd = "";        private static readonly string _connStr = string.Format("mongodb://{0}:{1}@{2}:27017/{3}", _user, _pwd, _ip, _db);        ///         /// 为某个userId添加friend,如果数组中不存在则添加        ///         ///         ///         /// 
public static bool UpdateOrInsert(string userId, string friendId) { var col = GetCollection(); var query = new QueryDocument { { "userId", userId }, new QueryDocument { { "$nin", new BsonArray().Add(friendId) } } }; var update = Update.Push("friends", friendId).Inc("count", 1); return col.Update(query, update, UpdateFlags.None).Ok; } private static MongoCollection
GetCollection() { MongoClient client = new MongoClient(_connStr); MongoServer server = client.GetServer(); var db = server.GetDatabase(_db); var col = db.GetCollection(_col); return col; } ///
/// 从属性中移除好友 /// ///
///
///
public static bool RemoveFriend(string userId, string friendId) { var col = GetCollection(); var query = new QueryDocument { { "userId", userId } }; MongoDB.Driver.Builders.UpdateBuilder builder = new MongoDB.Driver.Builders.UpdateBuilder(); builder.Pull("friends", friendId); return col.Update(query, builder, UpdateFlags.None).Ok; } ///
/// 更新字段值 /// ///
///
///
public static bool UpdateFields(string userId, Dictionary
dic) { var col = GetCollection(); var query = new QueryDocument { { "userId", userId } }; MongoDB.Driver.Builders.UpdateBuilder builder = new MongoDB.Driver.Builders.UpdateBuilder(); foreach (var item in dic.Keys) { builder.Set(item, BsonValue.Create(dic[item])); } builder.Set("dt", DateTime.Now); return col.Update(query, builder, UpdateFlags.Upsert).Ok; } }}

代码

上述是好友列表中的操作。如果好友列表中已经存在,则不再添加,否则添加。省略用c#在做业务的判断了。其实有很多,都可以交给mongodb去做,可以在代码中少很多的if-else。

转载于:https://www.cnblogs.com/wolf-sun/p/5607986.html

你可能感兴趣的文章
浅析Python进行接口自动化
查看>>
windows及linux环境下永久修改pip镜像源的方法
查看>>
表格表单及样式重置、特性
查看>>
八月个人考核
查看>>
linux网卡绑定
查看>>
Oracle技术之缺少log_archive_config导致归档路径被禁用
查看>>
Oracle 临时表之临时表的应用问题
查看>>
Linux之进程查看与管理
查看>>
碟中谍:完成任务机房是核心
查看>>
戴尔联合微软开发私有云入门级系统
查看>>
图片轮播滚动
查看>>
关于客户端与服务端时区不同导致客户端上的时间不准问题的解决方案
查看>>
我的日常Git使用
查看>>
基于Windows AD的单点登录系统(二)
查看>>
第17章 重新登录
查看>>
java 表现层:jsp、freemarker、velocity
查看>>
内置函数, 递归, 二分法
查看>>
java jni和android java ndk
查看>>
Kotlin技术分享:中缀调用、解构声明
查看>>
property函数
查看>>