我将Nodejs和Mongodb与Mongoose一起使用。我的模型包含以下属性:
first_name
last_name
status
我需要使用猫鼬查找功能来搜索这3个字段的用户。我有2个参数:
full_name: Craig de Zia
status: alive
例如,我的名字叫Craig de Zia。我不知道名字的哪一部分是名字或姓氏,所以我想搜索全名。我想用“ $ and”逻辑连接全名和状态。条件结构如下:
'$and': [
{ 'full_name': 'Craig de Zia' },
{ status: 'alive' },
]
问题在于数据库中没有 full_name 字段。我们需要合并名字字段和姓氏字段。我该怎么办?
答案 0 :(得分:1)
根据条件管理名字和姓氏
db.collection.find({
$and: [
{
$expr: { $eq: ['Craig de Zia', { $concat: ["$first_name", "$last_name"] }] }
},
{ 'status': 'alive' }
]
})
请在$ concat中将名字和姓氏管理为“名字姓氏” ,如果要搜索, 名字和姓氏,并在它们之间留有空格,然后使用
{ $concat: ["$first_name", " ", "$last_name"] }