我正在将 Nodejs 和 Mongodb 与 Mongoose 一起使用。我的模型包含以下属性:
first_name
last_name
status
我需要使用 mongoose 查找功能来搜索具有这 3 个字段的用户。我有 2 个参数:
full_name: Craig de Zia
status: alive
例如,我的名字叫 Craig de Zia。我不知道名字的哪些部分是名字或姓氏,所以我想搜索全名。我想用“$and”逻辑连接全名和状态。条件结构如下:
'$and': [
{ 'full_name': 'Craig de Zia' },
{ status: 'alive' },
]
问题是数据库中没有 full_name 字段。我们需要合并 first_name 字段和 last_name 字段。我怎样才能做到这一点?
最佳答案
根据条件管理名字和姓氏
db.collection.find({
$and: [
{
$expr: { $eq: ['Craig de Zia', { $concat: ["$first_name", "$last_name"] }] }
},
{ 'status': 'alive' }
]
})
如果您想搜索,请在此处管理名字和姓氏$concat为“first_namelast_name” first_name 和 last_name 之间有空格,然后使用
{ $concat: ["$first_name", "", "$last_name"] }
关于node.js - mongoose 使用一个搜索参数查找包含组合字段的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561401/