查詢記錄
普通查詢
> var cursor = db.things.find();
> while (cursor.hasNext()) printjson(cursor.next());
上面的例子顯示了遊標風格的迭代輸出. hasNext() 函數告訴我們是否還有資料, 如果有則可以調用 next() 函數.
當我們使用的是 JavaScript shell, 可以用到JS的特性, forEach 就可以輸出遊標了. 下面的例 子就是使用 forEach() 來迴圈輸出: forEach() 必須定義一個函數供每個遊標元素調用.
> db.things.find().forEach(printjson);
在 MongoDB shell 裡, 我們也可以把遊標當作數組來用:
> var cursor = db.things.find();
> printjson(cursor[4]);
使用遊標時候請注意佔用記憶體的問題, 特別是很大的遊標對象, 有可能會內該用迭代的方式來輸出. 下面的樣本則是把遊標轉換成真實的數群組類型:
> var arr = db.things.find().toArray();
> arr[5];
條件查詢
> db.things.find({name:"mongo"}).forEach(printjson);
> db.things.find({x:4,y:"abc"}).forEach(printjson);
返回特定的元素
> db.things.find({x:4}, {j:true}).forEach(printjson);
findOne()文法
printjson(db.things.findOne({name:"mongo"}));
通過limit 限制結果集數量
> db.things.find().limit(3);
修改記錄
> db.things.update({name:"mongo"},{$set:{name:"mongo_new"}});
刪除記錄
> db.things.remove({name:"mongo_new"});