Exemplo n.º 1
0
        public void UpdateOneNoMatched()
        {
            IMongoDatabase db  = MongoBase.GetDatabase();
            var            col = db.GetCollection <Foo>("foo");

            var opt = new UpdateOptions();

            opt.IsUpsert = true; //是否插入

            //读取数据,ID为不为空,再更新,会报以下错误
            //insertDocument :: caused by :: 11000 E11000 duplicate key error index: MissionV2.foo.$_id_  dup key: { : ObjectId('577a1b2a9b3252d0c80529ae') }
            //var myfoo = col.Find(x => x.Name == "tg").SingleOrDefault();
            //myfoo.Name = "tg" + myfoo.Age;
            //myfoo.Age += 1;

            var myfoo = new Foo()
            {
                Name = "droba", Age = 40
            };
            var doc = new BsonDocument {
                { "$set", myfoo.ToBsonDocument() }
            };
            UpdateResult res = col.UpdateOne(x => x.Name == "nonamematch", doc, opt);

            System.Diagnostics.Debug.WriteLine(res.ToJson());
        }
Exemplo n.º 2
0
        public string CappedColVsRedis1_read()
        {
            this._db = MongoBase.GetDatabase();

            var col = _db.GetCollection <MyUser>("cappedcol1");

            var one = col.Find(x => x.age == 12).FirstOrDefault();

            return(one.ToJson());
        }
Exemplo n.º 3
0
 public void CreateCappedCollection()
 {
     this._db = MongoBase.GetDatabase();
     this._db.CreateCollection("cappedcol1", new CreateCollectionOptions()
     {
         Capped       = true,
         MaxDocuments = 5,
         MaxSize      = 500
     });
 }
Exemplo n.º 4
0
        /// <summary>
        /// 更新一个,但多个匹配
        /// 只会更新第一个匹配
        /// </summary>
        public void UpdateOneManyMatched()
        {
            IMongoDatabase db  = MongoBase.GetDatabase();
            var            col = db.GetCollection <Foo>("foo");

            var doc = new BsonDocument {
                { "$set", new BsonDocument {
                      { "Name", "droba" }, { "Age", 40 }
                  } }
            };
            UpdateResult res = col.UpdateOne(x => x.Sex == 1, doc);

            System.Diagnostics.Debug.WriteLine(res.ToJson());
        }
Exemplo n.º 5
0
        /// <summary>
        /// 整个对象替换,效率不及UpdateOne,有针对性更新
        /// </summary>
        public void ReplaceOne()
        {
            IMongoDatabase db  = MongoBase.GetDatabase();
            var            col = db.GetCollection <Foo>("foo");

            var myfoo = col.Find(x => x.Name == "tg").SingleOrDefault();

            myfoo.Name = "tg2";
            myfoo.Age  = 77;

            ReplaceOneResult res = col.ReplaceOne(x => x.Id == myfoo.Id, myfoo);

            System.Diagnostics.Debug.WriteLine(res.ToJson());
        }
Exemplo n.º 6
0
        public void UpdateOne1()
        {
            IMongoDatabase db  = MongoBase.GetDatabase();
            var            col = db.GetCollection <Foo>("foo");

            var opt = new UpdateOptions();

            opt.IsUpsert = true; //是否插入

            var doc = new BsonDocument {
                { "$set", new BsonDocument {
                      { "Sex", "wowen" }
                  } }
            };
            UpdateResult res = col.UpdateOne(x => x.Name == "tg", doc, opt);

            System.Diagnostics.Debug.WriteLine(res.ToJson());
        }
Exemplo n.º 7
0
        public void UpdateOne2()
        {
            IMongoDatabase db  = MongoBase.GetDatabase();
            var            col = db.GetCollection <Foo>("foo");

            var opt = new UpdateOptions();

            opt.IsUpsert = true; //是否插入

            var myfoo = col.Find(x => x.Name == "tg").SingleOrDefault();

            myfoo.Name = "tg2";
            myfoo.Age += 1;

            var doc = new BsonDocument {
                { "$set", myfoo.ToBsonDocument() }
            };
            //var doc = myfoo.ToBsonDocument();
            UpdateResult res = col.UpdateOne(x => x.Id == myfoo.Id, doc, opt);

            System.Diagnostics.Debug.WriteLine(res.ToJson());
        }
Exemplo n.º 8
0
        public void CappedColVsRedis1()
        {
            int level = 1000000;

            this._db = MongoBase.GetDatabase();

            //this._db.CreateCollection("col2redis", new CreateCollectionOptions()
            //{
            //    Capped = true,
            //    MaxDocuments = level,
            //    MaxSize = level * 100
            //});

            var col = _db.GetCollection <MyUser>("col2redis");

            MyUser my = new MyUser()
            {
                name   = "tg",
                age    = 12,
                amount = "1283"
            };

            col.InsertOne(my);
        }