2011-02-08 62 views
1

處理嵌套文檔時可以使用點符號嗎?節點JS中的點符號MongoDb查詢

http://www.mongodb.org/display/DOCS/Dot+Notation+(Reaching+into+Objects

我想查詢地圖的結果/減少,因此需要 運行這樣的查詢:

find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'}) 

在節點代碼嘗試這不返回行,但相同的查詢在MongoDB shell中預期爲 。

+0

你能來分析這一點,看看實際的查詢被髮送到從節點的服務器? – 2011-02-08 02:02:26

+0

是的。看起來這是mongodb驅動程序中的一個問題,它會從鍵中刪除引號,以便查詢轉入以查找({_ id.page:'ThisPage',_id.user:'AUser'}) – Khash 2011-02-08 09:06:29

回答

0

這是非常可能的,我以前做過。

爲什麼你的_id屬性下有嵌套文檔?不知道你的用例是什麼,但這似乎有點奇怪。 _id是一個特殊的屬性,它始終是文檔的唯一ID。所以它可能會被駕駛員視爲特殊的(即不期望有子文件)。也許嘗試將您的子文檔置於不同的屬性名稱下。

2

針對查詢文檔的內部不需要點符號,您可以改爲使用文檔符號。

find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'})

可改爲

find({_id: {page: 'ThisPage', user: 'AUser'}})