【发布时间】:2019-05-23 01:57:56
【问题描述】:
我有以下类型的对象:
"name":string,
"title": string,
"body": string
我需要执行聚合查询,以查找在某个字段中包含特定文本的对象。结果应按以下规则分组:
- 名称中包含文本的第一个对象。
- 然后对象的标题包含文本。
- 然后对象的主体包含文本。
聚合的第一阶段如下所示:
"$match" : {
"$or" : [
{
"name" : /.*hellow world.*/i
},
{
"title" : /.*hellow world.*/i
},
{
"body" : /.*hellow world.*/i
}
]
}
- 另外,我正在使用分页。
- 从 node.js 服务器请求的查询。
我的第一个问题是我仍然没有弄清楚是否可以在聚合管道中执行这样的分组。
另外,我尝试先执行三个查询以获取其名称包含术语的结果,然后是其标题和正文的结果。使用这种方法我几乎没有其他问题:对服务器的三个查询效率不高,而且管理分页也增加了整个过程的复杂性。
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework