繁体   English   中英

如何根据 url 查询字符串中的对象在 mongo 中排序?

[英]How do sort in mongo based on objects in url query string?

I want to sort a mongo collection on base of following query in URL string from a node application.

http://localhost:5000/v1/bid/sort_bid?sort={"_id": -1,"enquiry_no": 1}

how do I pass an object in following code?

const getSortedBidList = catchAsync(async (req, res) => {
let { sort } = req?.query;
    console.log('Query String', sort);
    let object = new Object();
    object[sort] === 1 ? 'ASC' : 'DESC';

let result = await Bid
        .find({})
        .sort(object)
        .limit(limit)
        .skip(offset);

在排序方法中,我传递了查询字符串的对象,但它不起作用。 请帮忙解决这个问题。 谢谢你

尝试以下操作:

http://localhost:5000/v1/bid/sort_bid?sort[_id]=-1&sort[enquiry_no]=1

此处了解有关 express 如何解析查询字符串的更多信息。

我建议您使用npm qs以编程方式将前端的对象解析为查询字符串:

import qs from 'qs';

async function sendRequestToBackend(queryAsObject) {
  const stringifiedQuery = qs.stringify(queryAsObject);
  await sendRequest(`http://localhost:5000/v1/bid/sort_bid?${stringifiedQuery}`)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM