gpt4 book ai didi

mongodb - $regex 与 $concat 在 MongoDB 的查询中

转载 作者:可可西里 更新时间:2023-11-01 10:00:04 26 4
gpt4 key购买 nike

我正在尝试根据用户名搜索用户。我的用户架构如下所示:

user: {
firstName: string,
lastName: string,
...
}

我可以正常运行以下查询:

const userDocs = await UserModel
.find({
$expr: {
$eq: [
{
$concat: [
'$firstName',
' ',
'$lastName',
],
},
'John Doe',
],
},
});

但是我正在尝试运行这样的查询:

const userDocs = await UserModel
.find({
$expr: {
$regex: [
{
$concat: [
'$firstName',
' ',
'$lastName',
],
},
new RegExp(`^${text}`, 'i'),
],
},
});

但是 MongoDB 不支持这个。

有没有办法将 $regex$concat 一起使用?

最佳答案

攻击表达式不支持正则表达式查询表达式做。

尝试聚合

在聚合管道中创建一个额外的字段名称,结合名字和姓氏,然后使用正则表达式进行匹配。

const userDocs = await UserModel.aggregate
({$addFields:{
name:{
$concat:[
'$firstName',
' ',
'$lastName',
]
}
}},
{$match:{
name:new RegExp(`^${text}`, 'i')
}});

关于mongodb - $regex 与 $concat 在 MongoDB 的查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49091893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com