.Net 運用 MongoDB 寫入、讀取、建立索引、刪除索引 .Net 運用 MongoDB 寫入、讀取、建立索引、刪除索引
  .NET 、   NO-SQL       ez      2012-05-04

首先下載 mongodb-csharp

原始網址:https://github.com/samus/mongodb-csharp/downloads

本站下載:MongoDBDriver-Release-0.90.0-Beta-1

using System;
using System.Linq;

namespace MongoDB
{
    class Program
    {
        static void Main(string[] args)
        {
            var mongo = new Mongo("mongodb://192.168.3.129");
            mongo.Connect();

            var DB = mongo.GetDatabase("TEST_DB");
            var TABLE = DB.GetCollection("TEST_TABLE");
            
            /*新增資料行*/
            {
                var DOC = new Document();
                DOC["Name"] = "Tom";
                DOC["Sex"] = true;
                DOC["Year"] = 18;
                TABLE.Insert(DOC);
            }

            /*列出指定TABLE資料列*/
            {
                foreach (var DOC in TABLE.FindAll().Documents)
                {
                    Console.WriteLine(DOC["Name"]);
                    Console.WriteLine(DOC["Sex"]);
                    Console.WriteLine(DOC["Year"]);
                }
            }
                        
            /*查詢指定資料*/
            {
                var DOC = new Document();
                DOC["Name"] = "Tom";
                var category = TABLE.FindOne(DOC);
                Console.WriteLine(category["Name"]);
                Console.WriteLine(category["Sex"]);
                Console.WriteLine(category["Year"]);
            }


            //MongoDB默認的索引_id(類似DB的主鍵)索引名稱叫做_id_ 列出索引資訊
            var _idindex = TABLE.MetaData.Indexes.Single(s => s.Key == "_id_");
            Console.WriteLine(_idindex);

            //將TABLE中的Sex欄位建立成為 單一索引(1正排列 -1反排列)
            TABLE.MetaData.CreateIndex(new Document() { { "Sex", 1 } }, false);

            //將TABLE中的Sex欄位建立成為 多重索引
            TABLE.MetaData.CreateIndex(new Document() { { "Name", 1 }, { "Sex", -1 } }, false);

            //將TABLE中的Name欄位建立成為 唯一索引
            TABLE.MetaData.CreateIndex(new Document() { { "Name", 1 } }, true);

            /*列出TABLE的所有索引*/
            foreach (var index in TABLE.MetaData.Indexes)
            {
                Console.WriteLine(index.Value);
            }

            //刪除TABLE的索引
            TABLE.MetaData.DropIndex("_Sex_");
        }
    }
}

 


標籤:   .NET 、   NO-SQL

我要留言