【发布时间】:2022-02-01 12:27:56
【问题描述】:
我需要查找和更新与查询对应的类别的文档。数组可以包含多个对应的 id。
查询:
{
"ids": ["61f1cda47018c60012b3dd01", "61f1cdb87018c60012b3dd07"],
"userId": "61eab3e57018c60012b3db3f"
}
我收集了以下文件:
`{
"_id":{"$oid":"61f1cdd07018c60012b3dd09"},
"expenses":[
{"category":"61eafc104b88e154caa58616","price":"1111.00"},
{"category":"61f1cdb87018c60012b3dd07","price":"2222.00"},
{"category":"61f1cda47018c60012b3dd01","price":"1241.00"},
{"category":"61f1cdb87018c60012b3dd07","price":"111.00"}
],
"userId":"61eab3e57018c60012b3db3f"
}`
我的方法:
async myMethod(ids: [string], userId: string) {
try {
const { ok } = await this.ExpensesModel.updateMany(
{"userId": userId, "expenses.category": { $in: ids }},
{$set: {"expenses.$.category": "newCategoryID"}}
);
return ok
} ........
id 的路径数组 ["61f1cda47018c60012b3dd01","61f1cdb87018c60012b3dd07","61f1cdb87018c60012b3dd07"] 和 userId,此代码仅按文档更新 1 个类别。
那么我可以使用 mongo 内置方法来实现吗?或者我需要自己找到匹配的文档并在更新或插入之后对其进行更新;
【问题讨论】:
标签: node.js mongodb mongoose graphql nestjs