.match({
avatar:$.neq(null)
})
.match(dbCmd.expr($.in(['$_id','$$userList'])))
上面是聚合的match两个过滤,我想合并成一个,但是老是错误,希望会的大佬给指导一下,合在一个match和分成两个match查询效率是否有区别?
.match({
avatar:$.neq(null)
})
.match(dbCmd.expr($.in(['$_id','$$userList'])))
上面是聚合的match两个过滤,我想合并成一个,但是老是错误,希望会的大佬给指导一下,合在一个match和分成两个match查询效率是否有区别?
咸虾米 (作者)
大佬,这样分开写match过滤,与写在一个match中,查询效率是否一致那?
2024-07-01 15:26
DCloud_uniCloud_CRL
回复 咸虾米: 这也是要看具体查询情况,如果存在索引,可以合并为一个match查询,可以加快查询速度。如果查询的数据量很大,可以拆成多个match实现,后面的match阶段会处理较少的数据量。你还是要根据实际情况来自行判断是否合并。
2024-07-01 16:38
咸虾米 (作者)
回复 DCloud_uniCloud_CRL: 如何合并的话会报错,$add only supports numeric or date types, not bool;
麻烦给看一下,这个合并查询有问题吗?
.match(dbCmd.expr(
$.add([
$.neq(['$avatar',null]),
$.in(['$_id','$$userList'])
])
))
2024-07-02 09:36
DCloud_uniCloud_CRL
回复 咸虾米: match 里应该用 and吧,不是add
2024-07-02 11:37
咸虾米 (作者)
回复 DCloud_uniCloud_CRL: 不好意思,拷贝错了改成and之后,$.neq(['$avatar',null])查询出来的结果是null,想要过滤掉数据表中没有avatar这个字段的数据,这样写neq是否是正确的那?
2024-07-02 14:04
DCloud_uniCloud_CRL
回复 咸虾米: 看下match 文档https://doc.dcloud.net.cn/uniCloud/cf-database-aggregate.html#aggregate-match
2024-07-02 16:39