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

一朵小红花
  • 74

比如有一个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里面的两条数据都找出来了。

求助大神们帮帮忙!

万分感谢!

回复
阅读 508
1 个回答

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

elemMatch(function (elem) {
  elem.where({ id: 1 });
  elem.where('cart').elemMatch({name:'sp1'});
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏