node.js - 查找引用对象id等于user._id的数据

标签 node.js express mongoose

我正在获取所有订单详细信息

例如:(一个订单的示例)

{
    "customer": {
        "id": "5db6ac89d85a2c1c709a42da",
        "name": "Testing"
    },
    "product": {
        "id": "5dba78427af9e73b18bdbb22",
        "name": "image",
        "seller": "Testing",
        "price": 100,
        "imgurl": "ok"
    },
    "_id": "5dba788fdeb78931f8a30105",
    "quantity": 3
}

当我使用 find() 时,我获取了所有元素,但我只想显示登录者的数据 即 customer.id 等于 req.user._id 我正在使用 find(),如下面的代码所示:

router.get('/cart',verifyToken, async (req, res)=>{
const order = await Order.find({/* what should be the query here to get the desired result*/},'product , quantity , customer ');
try{
    res.send(order)
}catch(err){
    res.status(400).send(err);
}});

任何其他方法来实现这一点

最佳答案

您必须使用findOne()。如下所示

const order = await Order.findOne({'customer.id':req.user._id}) // probably req.body.user._id

await Order.findOne( { customer: { id:req.user._id } } )

请参阅文档 here

关于node.js - 查找引用对象id等于user._id的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58638966/

相关文章:

node.js - Node/Express 应用程序在与 MongoDB 交互时挂起,没有给出错误

node.js - 在 windows10 中安装 nodejs 后 npm 命令不起作用?

node.js - NodeJS - 将命令行参数传递给所需的模块

regex - 如何在 Express.js 中创建 "does not begin with..."正则表达式?

javascript - 无法让按钮在 EJS 模板中工作

javascript - Mongoose 删除文档中的数组元素

javascript - Route.get() 需要回调函数,但修改服务器路由后得到一个 [object Undefined]

node.js - NodeJS - 带有空数据的流。怎么处理?

node.js - node-cron 模块和 Heroku Scheduler 之间的区别

node.js - 如何创建从服务器到所有通知授予用户的网络推送通知?