2016-10-04 58 views
0

我有一個Calendar收集各種日曆文件,但他們的一些屬性有不同的價值觀:流星多個字段查詢

DOC1

{ 
    "_id" : 1.0, 
    "createdAt" : ISODate("2016-07-04T07:01:40.158Z"), 
    "usuarios_admin_ids" : [ 
     "Ys6fiychXcSfCgWox" 
    ], 
    "title" : "yyyyy", 
    "state" : "public", 
    "fechaModificacion" : "2016-10-15 08:00:00", 
    "master_ids" : [ 
     "null" 
    ] 
} 

DOC2

{ 
    "_id" : 3.0, 
    "createdAt" : ISODate("2016-07-04T07:01:40.158Z"), 
    "usuarios_admin_ids" : [ 
     "Ys6fiychXcSfCgWox" 
    ], 
    "title" : "xxxxxx", 
    "state" : "public", 
    "fechaModificacion" : "2016-10-12 08:00:00", 
    "master_ids" : [ 
     1 
    ] 
} 

我在執行查詢時會遇到問題,該問題將會提取我:

Title = yyyy和文檔masters_id = 1的文檔」。

這應該返回到上面,因爲在doc2master_ids指向的doc1_id的方式,如果doc1不存在,我不會得到任何結果,這兩個文件。

回答

0

我會添加到@asdfJackal答案,是正確的。

$ in用作「master_ids」是一個數組。

Calendar.find({$or: [{"title": "yyyy"}, {"master_ids": {$in: [1]}}]}); 
0

試試這個作爲你的查詢過濾器:

{$or: [{title: "yyyy"},{masters_id: 1}]} 
+0

謝謝但Monasha anwer更準確。數組部分非常重要。 – Olusegun

+0

沒問題,很高興你找到答案,併爲你工作。 – asdfJackal