1
検索のクエリパラメータが存在する場合、カスタムMongoose集計クエリが実行されて、顧客の詳細による注文を検索するように設定しました。Feathersjsが結果を上書きしてページングを維持するカスタムクエリ
それは注文を返すという意味では正常に動作しますが、問題は、私は正常になりますページネーションのための結果に属性を失うことであるmodule.exports = function(hook, next) {
if (hook.params.query && hook.params.query.search) {
let search = hook.params.query.search;
let regEx = new RegExp(".*" + search + ".*", "i");
delete hook.params.query.search;
const OrderModel = hook.app.service("orders").Model;
OrderModel.aggregate([
{
$lookup: {
from: "customeraddress",
localField: "shipping_address",
foreignField: "_id",
as: "shipping_address"
}
},
{
$lookup: {
from: "customeraddress",
localField: "billing_address",
foreignField: "_id",
as: "billing_address"
}
},
{
$match: {
$or: [
{
"shipping_address.first_name": regEx
},
{
"shipping_address.last_name": regEx
},
{
"shipping_address.email": regEx
},
{
"billing_address.first_name": regEx
},
{
"billing_address.last_name": regEx
},
{
"billing_address.email": regEx
}
]
}
}
]).then(orders => {
hook.result = orders;
next();
});
} else {
next();
}
};
だから私はこのようなカスタムクエリを行うことができますどのように
{
"total": 2453,
"limit": 25,
"skip": 0,
"data": []
}
同じ応答構造を維持しています。これは私が自分でする必要があるか、それを行うための別の方法です。