mongoose复杂的查询

使用mongoose。 Schema看起来类似于这个:

{ "name" : String, "start" : Date, "stop" : Date } 

我试图做的是build立一个查询,(“与”):

  1. “name”==值
  2. “开始” – 不存在或“开始”的价值
  3. “停止” – 不存在或“停止”lte值

另一方面,启动和停止可以通过,或者不能通过(其中任何一个)。

我所有的尝试,而完成了某种Mongo错误:)所以要求一些帮助。

问候。

您的AND查询逻辑可以用以下两种方式之一来表示:

隐式AND操作

 Model.find({ "name": name, "start": { "$or": [ { "$exists": false }, { "$gte": start } ] }, "stop": { "$or": [ { "$exists": false }, { "$gte": stop } ] } }).exec(callback); 

显式AND操作:

 Model.find({ "$and": [ { "name": name }, { "start": { "$or": [ { "$exists": false }, { "$gte": start } ] } }, { "stop": { "$or": [ { "$exists": false }, { "$gte": stop } ] } } ] }).exec(callback);