1. 程式人生 > >c#操作MongoDB驗證 全解析 增 -刪改查有空自己玩,

c#操作MongoDB驗證 全解析 增 -刪改查有空自己玩,

1.7mongo之前與之後C#可用驅動:使用vs2012以上版本的Nuget獲取官方原版MongoDB.Driver(官方git庫下載程式集也會缺少程式集,大可一試) 安裝沒有坑。。。隨便操作>>>>

看本文之前應當對Mongodb有一丟丟了解 (mongo是什麼,幹什麼,怎麼幹,應該有個自己的想法)

啟動MongoDB: mongod --bind_ip 192.168.0.19 --logpath "D:\MongoPath\log\mongodb.log" --logappend --dbpath "D:\MongoPath" --auth --port 27017 --serviceName "MongoDBService" --serviceDisplayName "MongoDB" --install
可以不繫結IP 把bind_ip給刪掉    未建立使用者之前去掉--auth

    若不想安裝服務只是啟動的話可以把 --serviceName "MongoDBService" --serviceDisplayName "MongoDB" --install這一截刪掉

重點注意:建立使用者時需注意admin庫中先建立“test1”,密碼“test1” role:dbAdminAnyDatabase 的使用者, 自定義db中要建立readWrite與上句同名使用者,才能非本地區域網內驗證通過,目前測試是這個結果 當然 名稱可以隨意 不過必須同名才能在非localhost的機器上訪問資料庫 否則就是單機mongo了(本文僅代表個人測試觀點)
啟動 :net start MongoDBService 或者 sc start MongoDBService刪除服務:sc delete MongoDBService

建立使用者命令

use admin

db.createUser({user:"test1",pwd:"test1",roles:[{role:"dbAdminAnyDatabase",db:"mt001"}]})

use newdb

db.createUser({user:"test1",pwd:"test1",roles:[{role:"readWrite",db:"mt001"}]})

本機登入 就新增環境變數 或者進入mongo安裝路徑cmd裡輸入mongo

就登入預設賬戶了,詳細命令附在下邊吧

mongo客戶端遠端登入 使用命令mongo 192.168.0.19:27017/mt001 -u test1 -p test1

若是程式呼叫就用連結字串 mongodb://test1:[email protected]:27017

常用的幾個命令

show dbsdbuse testshow collectionshelpdb.help()db.dropUser("cjl")db.user.help();db.user.drop();db.user.find();

遠端呼叫測試C#程式碼

Console.WriteLine("使用者名稱:密碼@IP");
            MongoUrl url = new MongoUrl("mongodb://" + Console.ReadLine() + ":27017/");
            MongoClient client = new MongoClient(url);
            Console.WriteLine("資料庫名:");
            IMongoDatabase db = client.GetDatabase(Console.ReadLine());
            Console.WriteLine("表名:");
            var tab = db.GetCollection<BsonDocument>(Console.ReadLine());
            while (true)
            {

                BsonDocument row = new BsonDocument();
                row.Add("_id", Guid.NewGuid() + "");
                Console.WriteLine("輸入插入的值測試");
                row.Add("name", Console.ReadLine());
                tab.InsertOne(row);
                Console.WriteLine("成功!");
            }