2015-05-04 45 views
0

把我的問題更加清晰無法找到特定文件:我使用MongoDB中,集合中的每個文檔的樣子:MongoDB的:同一個字段的值,而是使用find()函數

{ 
    u'cell_latlng': { 
    u'type': u'Polygon', 
    u'coordinates': [ 
     [ 
     [ 
      ... 
     ], 
     [ 
      ... 
     ], 
     [ 
      ... 
     ], 
     [ 
      ... 
     ] 
     ] 
    ] 
    }, 
    u'self': { 
    u'Bus Line': 1, 
    u'Meeting Room': 1, 
    u'Neighborhood': 1, 
    u'Home (private)': 1, 
    u'Food': 1, 
    u'High School': 2, 
    u'Elementary School': 1, 
    u'Beach': 1, 
    u'Other Repair Shop': 1 
    }, 
    u'_id': ObjectId('5545bed4e139c7dcde660f5a'), 
    u'point_latlng': { 
    u'type': u'Point', 
    u'coordinates': [ 
     ... 
    ] 
    }, 
    u'area': 100 
} 

現在我需要找到集合中的特定文檔(集合稱爲城市地圖)。我知道現場的「自我」和值的值被稱爲功能[0],所以我只是用:

results = citymap.find({'self':feature[0]}) 

然而,

results.count() == 0 

我檢查功能[0]一次我相信它是:

feature[0] = {u'Bus Line': 1, u'Meeting Room': 1, u'Neighborhood': 1, u'Home (private)': 1, u'Food': 1, u'High School': 2, u'Elementary School': 1, u'Beach': 1, u'Other Repair Shop': 1} 

這是完全一樣的,在文檔,爲什麼我無法找到使用這句話此文檔?

非常感謝任何幫助

+0

爲什麼你不會像這樣創建你的'特徵'值'self.u'Bus Line':1,self.u'Meeting Room':1,....' – Yogesh

+0

啊,因爲這個也用於其他事情,我們需要保持這種格式,所以有什麼好主意解決這個問題? – gladys0313

+0

所以這種情況下,你應該遍歷'feature'對象,並用'self.'附加每個鍵,然後形成新的對象並檢查新的對象。 – Yogesh

回答

0

讓我們來檢查這個腳本。假設你feature對象這樣

var feature = {u'Bus Line': 1, u'Meeting Room': 1, u'Neighborhood': 1, u'Home (private)': 1, u'Food': 1, u'High School': 2, u'Elementary School': 1, u'Beach': 1, u'Other Repair Shop': 1}

遍歷feature對象,每個按鍵如追加和self他們推入新的對象。檢查下面的功能:

var appendSelf = {}; 

function appendData(data) { 
    for (var k in data) { 
    if (data.hasOwnProperty(k)) { 
     appendSelf["self.".concat(k)] = data[k]; //append self to every keys and set it's respective values 
    } 
    } 
} 

如果鍵入appendSelf在控制檯現在調用這個函數爲appendData(feature)話,就說明對象與附加self這樣

> appendSelf 
{ 
    "self.u'Bus Line": 1, 
    "self.u'Meeting Room": 1, 
    "self.u'Neighborhood": 1, 
    "self.u'Home (private)": 1, 
    "self.u'Food": 1, 
    "self.u'High School": 4, 
    "self.u'Elementary School": 1, 
    "self.u'Beach": 1, 
    "self.u'Other Repair Shop": 1 
} 

所以用這個appendSelf在查找標準爲citymap.find(appendSelf[0]).pretty()它秀預期結果。

相關問題