ubuntu mongodb 客戶端配置和常用的查詢語句

非常不錯的一個文章,強烈推薦,只是在最後一步配置php的mongo驅動時,需要指定全路徑extension=mongo.so,這裏的mongo.so一定要指向你本地的全路徑,否則是不起作用的。

http://my.oschina.net/zhaoyou/blog/24482

查詢表user中記錄,這裏不加條件查詢,默認會返回前20條記錄,而不是向mysql中返回全部的記錄:
db.user.find();

查詢表user中所有記錄的總條數:
db.user.find().count();

查詢表user中的前10條記錄:
db.user.find().limit(10);

因爲默認查詢時mongo每次只是會顯示20條記錄,因此如果記錄數大於20時,需要鍵入
引用
it
查看下一頁的內容。
查詢表user中字段name爲china的記錄:
db.user.find({"name":"china"});

查詢表user中字段name爲china,age爲20的記錄:
db.user.find({"name":"china","age":50});

查詢表user中字段name爲china,age爲20的記錄,並且只顯示name字段:
db.user.find({"name":"china","age":50},{"_id":0,"_class":0,"age":0,"name":1});

查詢條件後面的條件就是指定的需要查詢的字段,0爲不顯示,1爲顯示
查詢表user中字段name爲china,age爲20、30或者40的記錄:
db.user.find({"name":"china","age":{"$in":[20,30,40]}});

$in中指定的值可以是不同類型的值,如果是字符型需要使用引號擴起來。

查看複製集的狀態:
rs.status();


刪除複製集中已經存在的數據庫:
rs.remove("複製集的名稱");

注意:將mongo實例從複製集中刪除之前,最好將改實例停掉。刪除之後,無論成功與否,mongo都會報錯,這個是正常的。只要再次使用rs.status()查看一下複製集中還有沒有改節點就可以了。

添加一個新的節點:
[color=red]
rs.add({"_id":xx,"name":"xxxx"})
[/color]
添加成功後,查看rs.status(),就會看見新添加的節點的狀態了。

======2013-02-21唯一性索引的使用================
今天提取數據時,發現有個集合中插入了大量的重複數據,對數據的提取造成了影響,於是想要將這些重複的數據保留一條,然後刪掉其它多餘的記錄。
查看了一下官方文檔,發現通過創建唯一性索引可以實現這個功能:
db.user.ensureIndex({"mobile":1,{"unique":true,"dropDups":true}})

選項功能:
dropDups:將重複的記錄刪掉,只保留第一條。
unique:說明在字段mobile上面建立的是唯一性索引。


已經創建的索引可以通過查看當前數據庫下面的system.indexes集合來實現。
db.system.indexes.find();


如果需要刪除已經不再使用的索引,可以使用dropIndexes指令:
db.runCommand({"dropIndexes":"索引所在集合名稱","index":"索引的名稱"})
,或者如果該集合也不再需要,那麼可以直接刪除集合,這時索引會一起被刪除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章