流星正则表达式可能不存在

时间:2018-07-25 17:07:53

标签: mongodb meteor publish-subscribe

我正在出版物(Meteor.pulish)中准备这样的查询

let regex = new RegExp( search, 'i' );
query = {
    $and: [
      {someCondtion: true},
      {$or: [

        { name: regex },
        { surname: regex },
        { email: regex }

      ]}
    ]
  };
return Something.find(query);

这按预期工作。

现在,我添加可以由同一个正则表达式匹配的字段,唯一的区别是此字段可能存在于所有文档中,也可能不存在:

query = {
    $and: [
      {someCondtion: true},
      {$or: [

        { name: regex },
        { surname: regex },
        { email: regex },
        { maybeField: regex}            
      ]}
    ]
  };

最后一个条件被忽略,我尝试了以下各种组合:

{ maybeField: {$exists: true, $eq: regex}} 

或:

{$and:[
     {maybeField:{$exists:true}}.
     {maybeField: regex}
}

最糟糕的是,当我在mongo控制台中使用此类变体时,它会按预期工作。.

0 个答案:

没有答案