2015-08-13 27 views
3

一個蒙戈db對象有像證件:蒙戈找到所有字段是具有指定鍵

{ 
    "_id": : ObjectId("55cb43e8c78b04f43f2eb503"), 
    <some fields> 
    "topics": { 
     "test/23/result": 149823788, 
     "test/27/result": 147862733, 
     "input/misc/test": 14672882 
    } 
} 

我需要找到一個有包含特定關鍵字的主題領域的所有文件。即找到所有文件有一個topic.key =「測試/ 27 /結果」

我已經嘗試了一些東西,但都沒有工作,既沒有嘗試下面的工作, 他們返回沒有記錄事件,雖然有些應該匹配:

db.collName.find({"topics.test/27/result": {$exists:true}}); 
db.collName.find({"topics.test\/27\/result": {$exists:true}}); 

如何使查詢工作?

斜槓字符被其他進程插入。他們是mqtt主題名稱。

+0

這MongoDB的版本使用的是? ? –

+3

第一個爲我工作 db.collName.find({「topics.test/27/result」:{$ exists:true}}); – Abie

+0

感謝您的意見。我發現問題是我構建查詢的方式。工作解決方案如下。 – RoyHB

回答

0

我找到了解決我的問題:

我是建立查詢錯在我的代碼。在下面的例子中,evtData.source包含密鑰名稱搜索,即「測試/ 27 /結果」

查詢方法,對我的工作原理是:

var query = {}; 
query['topics.' + evtData.source] = {$exists: true}; 
db.collName.find(query)