【问题标题】:Aggregate and update with mongoose使用 mongoose 进行聚合和更新
【发布时间】:2021-08-06 06:42:38
【问题描述】:

我想使用聚合方法进行查询并通过值修改我的数据库,我尝试使用 $set 但我的数据库没有被修改。

这是我的查询方式:

var filter = req.body.filter
var search = [ { $match: filter }, { $set: {item: "2"} }, { $sample: { size: 1 } }]
const result = await dataModel.aggregate(search)

我知道还有 findOneAndUpdate 但我想保持聚合,因为我也想在我的管道中使用 $project

提前致谢!

【问题讨论】:

  • 我已经搜索过了,但我找不到任何允许您同时检索和修改值的管道
  • 转换数据(更新和删除)是可以实现聚合查询允许的基本功能(除了其他功能之外)。我很惊讶。
  • 我尝试使用 $set 和 $rootReplace 但它们都不允许更改 BDD 中的值。我现在唯一的方法是聚合()然后是 findOneAndUpdate ...

标签: mongodb mongoose mongodb-query


【解决方案1】:

您可以使用 FindOneAndUpdate 来更改您的数据库

【讨论】:

  • 请考虑在您的答案中添加详细信息。问题正文中已经提到,为什么作者要使用aggregate 代替FindOneAndUpdate
  • 是的,我想使用聚合来获取随机文档
猜你喜欢
  • 2015-08-01
  • 2016-12-21
  • 2017-01-02
  • 2014-06-24
  • 2012-08-23
  • 2019-07-31
  • 1970-01-01
  • 2020-12-24
  • 2014-12-24
相关资源
最近更新 更多