1、mongodb 怎麼備份多個集合
單個來collection備份:
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
-h: MongoDB所在服務自器地址
-d: 需要恢復的資料庫實例
-c: 需要恢復的集合
-f: 需要導出的欄位(省略為所有欄位)
-o: 表示導出的文件名
2、MongoDB如何處理多對多關系
如果是一對多,我知道可以用嵌套,但不知道如何處理多對多的關系,請指教。【來自山賊】問題解答:如何處理好多對多的關系可謂是NoSQL的精髓所在。理論上,可以在一個集合中完成存儲,不過實際上這樣的情況非常罕見。這是由於查詢的多樣性所導致的,若是只有一種類型的查詢,則這種多對多的關系放在一個良好設計的集合中,雖然會有大量的冗餘,但是效率一定是最高的。如何設計這種資料庫的關鍵就是看你有多少種查詢,每一種的頻率是多少,使用的其他要求是什麼樣的。對於不同的查詢,同樣的資料庫設計的性能也是大不一樣。還有一點,一般不要拆成三個集合,這是傳統的關系型資料庫的思維方式。都NoSQL了一定要換個角度思考問題。常見的情況就是拆成兩個集合,然後有一部分冗餘,對最常用的查詢做一個索引。這個還得多多實踐。【Mars】1、Team裡面存一個 teammates: [] 存 User 的 _id 或其它索引值,這樣就知道一個 team 有哪些 user2、User可以反查 Team 的 find({teammates: _id})源碼天空
與關系資料庫類似,分開兩個文檔存儲,
然後其中一個文檔的ID列表存在另一個文檔中【jarod】
3、mongodb可以一個用戶可以操作多個資料庫嗎
3.x版本以後在創建(修改)用戶的時候賦予該用戶多庫的操作許可權即可,2.6之前貌似不可以,除了admin下的用戶。
4、mongodb可以寫多個group嗎
一個聚合操作里可以有多個group操作
5、mongodb一次能插入多少數據
insert()方法:
下面是在inventory集合中插入一個三個欄位的文檔:
復制代碼代碼如下:
db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
在實示例中,文檔有一個用戶指定的值為10的_id欄位,這個值必須在inventory集合中唯一。
update()方法:
調用update()方法使用upsert標志創建一個新文檔當沒有匹配查詢條件的文檔時。下面的例子當inventory集合中沒有包含{type:"books",item:"journal"}的文檔時創建一個新文檔:
復制代碼代碼如下:
db.inventory.update(
{ type: "book", item : "journal" },
{ $set : { qty: 10 } },
{ upsert :true }
)
MongoDB添加_id欄位和分配一個唯一的ObjectId作為它的值。新文檔包含來自查詢<query>條件的item和type欄位,和來自更新<update>參數的qty欄位:
復制代碼代碼如下:
{ "_id" : ObjectId("51e8636953dbe31d5f34a38a"), "item" : "journal", "qty" : 10, "type" : "book" }
save()方法:
使用save()方法插入一個文檔,通過該方法保存一個不包含_id欄位的文檔或者包含_id欄位但該欄位值不存在集合中的文檔。下面的示例創建一個新的文檔在inventory集合:
復制代碼代碼如下:
db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
MongoDB添加_id欄位和分配一個唯一的ObjectId作為它的值。
復制代碼代碼如下:
{ "_id" : ObjectId("51e866e48737f72b32ae4fbc"), "type" : "book", "item" : "notebook", "qty" : 40 }
6、mongodb 資料庫能支持多少
配置如下:
verbose:日誌信息冗餘。默認false。提高內部報告標准輸出或記錄到logpath配置專的日誌文件中。要啟用屬verbose或啟用verbosity 用vvvv參數,如:
verbose = true
vvvv = true
ps:啟動verbose冗長信息,它的級別有 vv~vvvvv,v越多級別越高,在日誌文件中記錄的信息越詳細。
port:埠。默認27017,MongoDB的默認服務TCP埠,監聽客戶端連接。要是埠設置小於1024,比如1021,則需要root許可權啟 動,不能用mongodb帳號啟動,(普通帳號即使是27017也起不來)否則報錯:[mongo --port=1021 連接]
ERROR: listen(): bind() failed errno:13 Permission denied for socket: 127.0.0.1:1021
7、如何更新mongoDB 數組里對象的多個數值
不如post裡面中保存用來戶id,源comments裡面也保存用戶的id,這樣就不用一個用戶的信息改了,需要在多個地方也修改相應的信息,當然這種方式需要你在比如查詢comments信息的時候,需要再獲取用戶的信息,需要你自己取捨了
更新的話,
1
db.posts.update({userId:'xxxxxx'},{$set:{"head" : "/images/portrait-1490968786371.jpg"}})//類似這樣子的
8、mongodb 可以建多少資料庫
1)列出當前的資料庫
MongoDB shell version: 1.8.1
connecting to: test
> show dbs -www.linuxidc.com-
admin 0.03125GB
local (empty)
可以使用show dbs來列出當前有多少個資料庫,上面看到的是有兩個,分別是admin和local。
2) 定義新的資料庫名
我們通過使用「use new-databasename」的語法去使用一個新的資料庫,注意,即使你的資料庫還沒建立起來,依然可以這樣使用,因為mongodb會在真正插入了數據後,才會真正建立起來。
>use mkyongdb
switched to db mkyongdb
> show dbs
admin 0.03125GB
local (empty)
注意,在use mkyongdb後,mkyongdb實際上還沒真正建立起來,只是表明目前是在使用mkyongdb了。
3)保存數據
定義一個collection,名為「users」,然後插入數據,如下:
> db.users.save( {username:"mkyong"} )
> db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
>
> show dbs -www.linuxidc.com-
admin 0.03125GB
local (empty)
mkyongdb 0.03125GB
可以看到,用db.users.find()可以找出已插入的數據。這個時候,名為「users」的collection已經建立起來了,同時,資料庫mkyongdb也建立起來了。
9、在window環境下mongodb怎麼同時添加多條數據
windows怎麼用mongodb導入數據 MongoDB是目前非常流行的一種NoSQL資料庫,其靈活的存儲方式備受回開發人員青睞。答本文就介紹一下如何安裝並設置成Windows服務的方法。 1、安裝MongoDB Windows版本的MongoDB無需安裝,只要解壓就能使用了。
10、一個頁面怎麼獲取 MongoDB 多個集合的數據
可以直接將兩個集合查出來傳版到權View里啊
collectionA.find().toArray(function(errA, recordsA){
collectionB.find().toArray(function(errB, recordsB){
res.render("view", {
collectionA: recordsA,
collectionB: recordsB
});
});
});