私のmongodbクエリでは、$ addFieldsを使って他の3つのフィールドを連結したIDフィールドを追加します。私の問題は、私が照会する価値のある新しい追加フィールドと一致すれば結果が得られないということです。他のフィールドでは、うまく動作します。
data = await model.aggregate([
{
$project: {
projectName: 1,
price: 1,
'document': '$$ROOT'
}
},
{
$addFields:{
'document.id': {$concat: ['$document.propertyId.prefix','$document.propertyId.number']}
}
},
{
$match: {
$and: [
{
$or: [
{id: {$regex: '.*' + req.query.search + '.*', $options: "i"}},
{projectName: {$regex: '.*' + req.query.search + '.*', $options: "i"}},
/*This also doesnt work*/
// {'document.id': {$regex: '.*' + req.query.search + '.*', $options: "i"}},
// {'document.projectName': {$regex: '.*' + req.query.search + '.*', $options: "i"}},
]
}
]
}
},
{
$replaceRoot: {newRoot: "$document"}
},
{
$sort: {
[sortBy]: sortType
}
},
]);
あなたのデータとクエリの外観は? – Astro
@Astro、私はそれらのパラメータを入れます。あなたは添付の写真でそれらを見ることができます – sophanith
@Astro、$ projectのために$$ ROOTを使ってすべてのフィールドを取得し、次に3つのフィールドを連結してidフィールドを追加しました。その後、私はその新しい追加フィールドの値を照会したい。 – sophanith