MongoDB学习(一)

MongoDB是NoSql中一直使用比较广泛的数据库,闲来无事,学习学习

至于如何安装,配置MongoDB的环境请查看:http://cn.docs.mongodb.org/manual/installation/,里面基本的CRUD也详细介绍了,仔细看看

我是安装了Window7 64位使用的版本。

由于我使用C#,所以还得去下个MongoDB的C#下的驱动,请查看:http://www.mongodb.org/display/DOCS/CSharp+Language+Center

安装好驱动后,把里面的MongoDB.Driver.dll,MongoDB.BSon.dll引用到工程中,这样就万事具备了,开始开工了

简单的插入和查询数据:

 class Person
    {
        public ObjectId _id;//BsonType.ObjectId//这个对应了 MongoDB.Bson.ObjectId 对目前的 mongdb 来说必须要有这个
        public int Uid;
        public string Name;
        public string PassWord;

    }
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "mongodb://localhost";

            string databasename = "myDatabase";

            string collectionName = "myCollection";

            MongoClient client = new MongoClient(connectionString);

            MongoServer server = client.GetServer();

            MongoDatabase database = server.GetDatabase("test");

           // MongoCollection<Entity> collection = database.GetCollection<Entity>("entities");

            //Entity entity = new Entity { Name = "Tom" };
            //collection.Insert(entity);
            //var id = entity.Id;
            //Console.WriteLine(id);

            //var query = Query.EQ("_id", id);
            //entity = collection.FindOne(query);

            //entity.Name = "Dick";
            //collection.Save(entity);

            //var update = Update.Set("Name", "Harry");
            //collection.Update(query, update);

            //entity = collection.FindOne(query);
            //Console.WriteLine(entity.Name);

            //collection.Remove(query);

            MongoCollection mongoCollection = database.GetCollection("demo");
            //先插入数据
            MongoInsert(server, mongoCollection);

            //再查下数据,我暂时屏蔽了,等插入之后,就将插入那句给屏蔽,查询的这句放开
          //  MongoSelect(mongoCollection);
            Console.ReadKey();
            
        }

        private static void MongoSelect(MongoCollection mongoCollection)
        {
            //更新字段名称,由于我在插入时,把第一行的Password的名字写错了,跟后面两行不同,就改下名称
            var queryName = Query.EQ("Uid", 123);
            var updateName = Update.Rename("Password", "PassWord");
            mongoCollection.Update(queryName, updateName);

            /*---------------------------------------------
            * sql : SELECT * FROM table 
            *---------------------------------------------
            */
            MongoCursor<Person> p = mongoCollection.FindAllAs<Person>();   //第一种读取的方式
            foreach (var i in p)
            {

                Console.WriteLine("_id:{0}", i._id);
                Console.WriteLine(i.Uid + "\\" + i.Name + "\\" + i.PassWord);
            }

            /*---------------------------------------------
            * sql : SELECT * FROM table WHERE Uid > 10 AND Uid < 20
            *---------------------------------------------
            */
            QueryDocument query = new QueryDocument();
            BsonDocument b = new BsonDocument();
            b.Add("$gt", 100);
            b.Add("$lt", 124);
            query.Add("Uid", b);
            MongoCursor<Person> m = mongoCollection.FindAs<Person>(query);

            foreach (BsonDocument book in mongoCollection.FindAs<BsonDocument>(query))   //第二种读取的方式
            {
               Console.WriteLine(book.ToString());
               Console.WriteLine("_id:{0}", book["_id"].AsObjectId);
               Console.WriteLine(book["Uid"].AsInt32 + "\\" + book["Name"].AsString + "\\" + book["PassWord"].AsString);
            }
           
           /*-----------------------------------------------
           * sql : SELECT COUNT(*) FROM table WHERE Uid > 10 AND Uid < 20
           *-----------------------------------------------
           */
            long c = mongoCollection.Count(query);

            /*-----------------------------------------------
           * sql : SELECT Name FROM table WHERE Uid > 10 AND Uid < 20
           *-----------------------------------------------
           */
            FieldsDocument f = new FieldsDocument();
            f.Add("Name", 1);
            MongoCursor<Person> mc = mongoCollection.FindAs<Person>(query).SetFields(f);

            /*-----------------------------------------------
          * sql : SELECT * FROM table ORDER BY Uid DESC LIMIT 10,10
          *-----------------------------------------------
          */
            SortByDocument s = new SortByDocument();
            s.Add("Uid", -1); //-1=DESC
            MongoCursor<Person> ms = mongoCollection.FindAllAs<Person>().SetSortOrder(s).SetSkip(10).SetLimit(10);
        }

        private static void MongoInsert(MongoServer server, MongoCollection mongoCollection)
        {
           //普通插入
            server.Connect();
            var o = new { Uid = 123, Name = "xixiNormal", Password = "111111" };
            mongoCollection.Insert(o);

            //对象插入
            Person p = new Person { Uid = 124, Name = "xixiObject", PassWord = "222222" };
            mongoCollection.Insert(p);

            //BsonDocument插入
            BsonDocument b = new BsonDocument();
            b.Add("Uid", 125);
            b.Add("Name", "xixiBson");
            b.Add("PassWord", "333333");
            mongoCollection.Insert(b);
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值