首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫鼬复合查询

猫鼬复合查询
EN

Stack Overflow用户
提问于 2017-01-08 13:04:46
回答 1查看 3.6K关注 0票数 3

用猫鼬。模式看起来类似于以下内容:

代码语言:javascript
复制
{
  "name" : String,
  "start" : Date, 
  "stop" : Date
}

我要做的是构建一个查询,即("AND"):

  1. “名称”==值
  2. “开始”-不存在或“开始”gte值
  3. “停止”-不存在或“停止”lte值

另一方面,启动和停止可以传递,也可以不能传递(其中任何一个)。

我所有的尝试都以某种蒙戈的错误结束了:)所以请求帮助。

致以问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-08 14:19:57

您的AND查询逻辑可以用以下两种方式中的任何一种表示:

隐式和操作

代码语言:javascript
复制
Model.find({
    "name": name,
    "start": { 
        "$or": [
            { "$exists": false },
            { "$gte": start } 
        ]
    },
    "stop": { 
        "$or": [
            { "$exists": false },
            { "$gte": stop } 
        ]
    }
}).exec(callback);

显式和操作:

代码语言:javascript
复制
Model.find({
    "$and": [
        { "name": name },
        {
            "start": { 
                "$or": [
                    { "$exists": false },
                    { "$gte": start } 
                ]
            }
        },
        {
            "stop": { 
                "$or": [
                    { "$exists": false },
                    { "$gte": stop } 
                ]
            }
        }
    ]
}).exec(callback);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41533005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档