Mongodb(一)

來源:互聯網
上載者:User

標籤:attribute   取出   sel   程式集   update   err   合取   comm   取資料   

一:開啟安裝包bin目錄下

二:開啟cmd,切換到bin目錄下

 

 三:把Mongodb安裝到服務上,在cmd視窗輸入mongod --install

是mongod --install上面寫錯了

四:設定設定檔,在bin目錄下建立一個Data檔案夾用來等下存放資料,然後建立一個mongodb.conf,開啟mongodb.conf輸入下面的配置資訊,退出儲存

五:在cmd輸入mongodb --config mongodb.conf,執行上一步的設定檔

 是mongod --config mongodb.conf上面寫錯了

 

 六:在cmd輸入mongo 伺服器IP:27017,例如本例是本機安裝mongo與IIS,所以輸入mongo 127.0.0.1:27017

七:瀏覽器輸入localhost:27017,出現下面這句話則表示開啟成功

八:不要關掉這個cmd。這時另外開啟一個cmd操作資料庫,常用命令

use 資料庫名:切換資料庫
show dbs顯示所有資料庫
show collections:顯示所有集合
db:查看當前指向的文檔
db.Users:指向Users集合
db.Users.find():查看所有資料
db.Users.insert({寫個json字串}),在寫命令時可以斷行符號 ex:db.Users.insert({id:1,name:‘bishige‘,age:12})
這就是無模式的優勢,想加哪個列都可以,而且區分大小寫
db.Users.remove():刪除所有資料
_id的值是由系統自己維護的,我們不需要管,可以參考文檔“mongodb學習 P4”來簡單說明
查詢資料:item=db.Users.find({"UId":5})
修改:db.Users.update({條件},{新值})
刪除:db.Users.remove({條件})
多insert幾條資料,為搜尋做準備
搜尋:db.Users.find({"UId":{"$gt":8}})表示大於8,great than
讀一讀:db.UserInfo.find({"$or":[{"id":{"$gt":1}},{"age":{"$lt":20}}]})//id>1 or age<20
說明:進行修改時不會迭代,刪除時迭代

九:.Net操作mongodb

-》.net讀寫
《1》引入程式集

《2》自訂類型,用於表示集合中的實體,如Person
定義屬性,加特定[BsonId]表示與集合中ObjectId類型屬性對應

public class Person    {        [BsonId]        public ObjectId Id { get; set; }        public string Name { get; set; }    }

 

除了ID這個欄位不太一樣,其他定義屬性跟sql server一樣。因為mongodb的主鍵實際上是"_id":ObjectId("一大堆數字"),所以自訂id屬性的時候要加上[BsonId]才能轉換成ObjectId
因為mongodb是沒有表的概念的
實際上全部都是json索引值對,不是說定義Person這個模型的時候,加了Name,Id這兩個屬性,mongodb裡面有就有Name,Id這兩個欄位了,不是這樣的
Person p = new Person() { Id=ObjectId.GenerateNewId(),Name="bishige"};初始化模型,id要通過ObjectId.GenerateNewId()這種方式賦值

《3》建立連接字串,格式如:“mongodb://127.0.0.1:27017”

//在設定檔中設定mongodb連接字串<appSettings>    <add key="mongo" value="mongodb://127.0.0.1:27017"/></appSettings>

  

《4》根據連接字串建立伺服器對象:
根據連接字串建立MongoUrl對象url
根據url對象建立MongoServerSettings對象settings
根據settings建立MongoServer對象server


《5》由伺服器對象擷取資料庫物件MongoDatabase:server.GetDatabase("user"),如果沒有會自動建立
《6》擷取集合對象
擷取類的名稱,作為集合的名字:typeof(Person).Name
由資料庫物件擷取集合對象:db.GetCollection<Person>(集合名稱),如果集合不存在會自動建立
《7》集合對象的方法:Insert,Update,Count,FindAll返回集合然後遍曆,Find使用Query參數,FindOneById
使用Bson方式進行查詢:Query
傳回型別為MongoCursor<T>,可以使用foreach遍曆
如:Query.GT("ID",1);//表示查詢ID大於1的所有資料
通過AsQueryable()方法將集合轉成IQueryable<T>,然後使用linq或lambda進行查詢
-》mongodb與redis的區別
1、mongodb是文檔型資料庫
2、mongodb支援複雜查詢

 十:.Net操作MongodbDemo

using MongoDB.Bson;using MongoDB.Bson.Serialization.Attributes;using MongoDB.Driver;using MongoDB.Driver.Builders;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MongodbDemo{    class Program    {        static void Main(string[] args)        {            Person pson = new Person() { Id = ObjectId.GenerateNewId(), Name = "bishige", Age = 12 };            string mongoIp = System.Configuration.ConfigurationManager.AppSettings["mongo"];            MongoUrl url = new MongoUrl(mongoIp);            //MongoServerSettings setting = new MongoServerSettings();不能用這種new出來            MongoServerSettings setting = MongoServerSettings.FromUrl(url);//類似工廠式建立            MongoServer server = new MongoServer(setting);            //記住MongoServer這個類,都是通過它來操作資料庫            MongoDatabase db = server.GetDatabase("hm12");            string collectionName = pson.GetType().Name + "s";//對象.GetType().Name/FullName-》擷取對象的名字,fullname是全名稱,包括命名空間,這裡只是想擷取類名作為mongodb表名(集合名稱)            if (db.CollectionExists(collectionName))            {                //如何該集合存在,就把集合取出來                               MongoCollection<Person> personCollection = db.GetCollection<Person>(collectionName);                //往集合裡面添加模型資料                personCollection.Insert(pson);                //查詢資料                QueryBuilder<Person> query = new QueryBuilder<Person>();                IMongoQuery q1 = query.GT(p => p.Age, 10);//大於10歲的                IMongoQuery q2 = query.EQ(p => p.Name, "bishige");//等於                IMongoQuery q3 = query.And(q1, q2);//QueryBuilder這個對象很重要,增刪改查都是通過它來點出來                MongoCursor<Person> cursor = personCollection.Find(q3);//Find()就相當於select語句                //MongoCursor繼承IEnumerable,所以Find()查出來的是一個集合                foreach (var person in cursor)                {                    Console.WriteLine(person);                }            }            else            {                //如何該集合不存在,就建立一個                CommandResult result = db.CreateCollection(collectionName);            }        }    }    public class Person    {        [BsonId]        public ObjectId Id { get; set; }        public string Name { get; set; }        public int Age { get; set; }        //格式化輸出效果,跟OC那個重寫一樣        public override string ToString()        {            return string.Format("Id:{0},Name:{1},Age:{2}", Id, Name, Age);        }    }}

  

Mongodb(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.