1. 程式人生 > >Mongodb巢狀查詢及修改

Mongodb巢狀查詢及修改

Mongodb各文件中對巢狀查詢的介紹不知道藏在哪個地方,反正我是沒找到,一個偶然的機會發現網上的一個帖子,終於知道了巢狀查詢的用法。於是乎我們應用中的一個問題也隨之被解決了。不說廢話了,現在說下巢狀查詢的使用。

假設mongodb中存在某個collections,其資料如下:

> db.xx.find()
{ "_id" : 1, "name" : { "first" : 2, "last" : 3 } }
{ "_id" : 3, "name" : { "1" : 1, "2" : 2, "3" : 3 } }
{ "_id" : 2, "name" : { "1" : 1, "2" : 2 } }

現在我們要查詢_id=1的記錄中name的first欄位的值,執行如下:

> db.xx.find({"_id":1},{"name.first":1,"_id":0})
{ "name" : { "first" : 2 } }

OK,通過以上示例我們知道巢狀查詢的關鍵就在於“name.first”。對巢狀屬性的修改其實也類似,例如我們要將查詢到這條記錄中name.first的值+2,那麼:

> db.xx.update({"_id":1},{$inc:{"name.first":2}})
> db.xx.find({"_id":1},{"name.first":1,"_id":0})
{ "name" : { "first" : 4 } }

ok,值已經改變。