【问题标题】:MongoDB - multiple queries based on conditionMongoDB - 基于条件的多个查询
【发布时间】:2018-02-20 19:33:16
【问题描述】:

我有一个看起来像这样的查询。

employees.aggregate(
[{ "$match":
 {"$and": [
   {"$or": [
     {name : { "$regex": param, "$options":"i"}},
     {title : { "$regex": param, "$options":"i"}},
   ]},
   { tenure : true }
]}
},
  {"$sort":{experience : -1}},
  {"$limit" : 100}
])

我想将此查询更新为类似的内容。

  1. 搜索员工集合,其中 name = param 和 tenure = true
  2. 如果数据存在,则按经验对结果进行排序,并将结果限制为 100
  3. 如果未找到结果,则使用标题搜索同一集合,无需对结果进行排序。

有人可以帮忙吗?

【问题讨论】:

    标签: mongodb mongodb-query aggregation-framework


    【解决方案1】:

    您需要在查询中应用条件排序。另一个重要的事情是 $regex 的值必须在 string(" ") 中。你不能像这样通过

    $regex: User  
    

    你需要以字符串的形式传递它。

    db.hotspot.aggregate(
    [{
            "$match": {
                "$and": [{
                        "$or": [{
                                name: {
                                    "$regex": "SD",
                                    "$options": "i"
                                }
                            },
                            {
                                radius: {
                                    "$regex": "250",
                                    "$options": "i"
                                }
                            },
                        ]
                    },
                    {
                        infinite: false
                    }
                ]
            }
        },
        {
            $project: {
                sort: {
                    $cond: {
                        if: {
                            $eq: ["$radius", 250]
                        },
                        then: "$name",
                        else: "$_id"
                    }
                }
            }
        },
        {
            $sort: {
                sort: 1
            }
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2023-03-23
      • 2017-10-23
      • 1970-01-01
      • 2017-10-01
      相关资源
      最近更新 更多