猫鼬发现文件与一个搜索参数相结合域
我使用的NodeJS和MongoDB与猫鼬。我的模型包含以下属性:
first_name
last_name
status
我需要用猫鼬查找功能来搜索用户与这些3场。我有2个参数:
full_name: Craig de Zia
status: alive
例如,我有一个叫克雷格·德·齐亚名。我不知道是哪部分姓名是姓或名,所以我要寻找的全名。我想全名和状态“$和”逻辑连接。条件结构将是这样的:
'$and': [
{ 'full_name': 'Craig de Zia' },
{ status: 'alive' },
]
问题是,有数据库中没有FULL_NAME场。我们需要FIRST_NAME场和姓氏场结合起来。我怎样才能做到这一点?
回答如下:管理FIRST_NAME和姓氏为每个条件
db.collection.find({
$and: [
{
$expr: { $eq: ['Craig de Zia', { $concat: ["$first_name", "$last_name"] }] }
},
{ 'status': 'alive' }
]
})
请管理FIRST_NAME和LAST_NAME这里$ CONCAT为“first_namelast_name”,如果你想搜索FIRST_NAME并在它们之间的空间姓氏然后使用
{ $concat: ["$first_name", " ", "$last_name"] }