第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

MongoDB中對(duì)數(shù)組操作

標(biāo)簽:
MongoDB

摘要

在实际开发中遇到更新某个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);        /// <summary>
       /// 为某个userId添加friend,如果数组中不存在则添加        /// </summary>
       /// <param name="userId"></param>
       /// <param name="friendId"></param>
       /// <returns></returns>
       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<BsonDocument> GetCollection()
       {
           MongoClient client = new MongoClient(_connStr);
           MongoServer server = client.GetServer();            var db = server.GetDatabase(_db);            var col = db.GetCollection(_col);            return col;
       }        /// <summary>
       /// 从属性中移除好友        /// </summary>
       /// <param name="userId"></param>
       /// <param name="friendId"></param>
       /// <returns></returns>
       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;
       }        /// <summary>
       /// 更新字段值        /// </summary>
       /// <param name="userId"></param>
       /// <param name="dic"></param>
       /// <returns></returns>
       public static bool UpdateFields(string userId, Dictionary<string, object> 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。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消