2016-10-04 59 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