mongoose查询并修改对象下的数组中的某一个匹配的值?

发布于 2022-09-12 23:31:18 字数 619 浏览 18 评论 0

比如有一个user

{
id: 1,
name: 'zs3',
cart: [
  {
    name: 'sp1',
    price: 100,
    quantity: 1
  },
  {
    name: 'sp2',
    price: 99,
    quantity: 2
  },
]
}

前端传过来的数据:

{
id: 1,
cart:{
 name: `sp1`,
 price: 111,
 quantity:1,
 }
}

期望实现效果:
查找并显示 id = 1, 并且 name = sp1的数据,
也就是只显示这样的:

{
id: 1,
name: 'zs3',
cart: [
  {
    name: 'sp1',
    price: 100,
    quantity: 1
  },
]
}

我用$elemMatch它把id = 1下的cart里面的两条数据都找出来了。

求助大神们帮帮忙!

万分感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必了 2022-09-19 23:31:18

没有测试过,你可以尝试下这个

elemMatch(function (elem) {
  elem.where({ id: 1 });
  elem.where('cart').elemMatch({name:'sp1'});
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文