Node.js 如何对Sequelize中的记录进行排序?
我有以下带有数据查询的API 这很好,但我需要在ModelBuyerAddressBooks中按“id”的递减顺序对记录进行排序。所以我使用了“顺序”,但它对输出没有任何影响。它总是以递增的顺序。我如何修改这个?我是新来的续集Node.js 如何对Sequelize中的记录进行排序?,node.js,sequelize.js,Node.js,Sequelize.js,我有以下带有数据查询的API 这很好,但我需要在ModelBuyerAddressBooks中按“id”的递减顺序对记录进行排序。所以我使用了“顺序”,但它对输出没有任何影响。它总是以递增的顺序。我如何修改这个?我是新来的续集 { model: BuyerAddressBooks, attributes: { exclude: commonExcludes }, order: [['id', 'DESC']] }, 以下是我的API代码: export const PG_getUserDet
{ model: BuyerAddressBooks, attributes: { exclude: commonExcludes }, order: [['id', 'DESC']] },
以下是我的API代码:
export const PG_getUserDetails = createContract("Any name as of now") //PG_BuyerProfile#get
.params("userId")
.schema({
userId: V.number(),
})
.fn(async (userId) => {
const user = await User.findByPk(userId, {
attributes: { exclude: commonExcludes },
include: [
{ model: PG_UserDetails, attributes: { exclude: commonExcludes } },
{
model: BuyerProfile,
attributes: { exclude: commonExcludes },
include: {
model: PhoneNumbers,
attributes: ["id", "number", "mobileVerified"],
},
},
{ model: BuyerAddressBooks, attributes: { exclude: commonExcludes }, order: [['id', 'DESC']] },
],
}).then(toPlain);
if (!user) {
throw new LogError("Profile not found", 400);
}
const { buyerProfile, buyerAddressBooks, phoneNumbers } = user;
const email = R.pathOr(user, ["userDetail", "email"], null);
return { email, ...buyerProfile, buyerAddressBooks, phoneNumbers };
})
.express({
method: "get",
path: "/buyer/pg_profile",
auth: true,
async handler(req, res) {
// @ts-ignore
const user = req.user;
console.log(`From console : ${user.id}`);
res.json(await PG_getUserDetails(+user.id));
},
});
include
选项没有order
prop。您可以尝试在用户
型号的选项中指示订单
,如下所示:
await User.findByPk(userId, {
attributes: { exclude: commonExcludes },
order: [['BuyerAddressBooks', 'id', 'DESC']],
...
非常感谢。奇怪的是,编译过程中甚至没有错误消息。错误可能与现有选项有关。我想Sequelize不会检查选项是否有额外的道具,这也是我目前发现的。