You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongoose中如何根据数组对象的from属性匹配用户_id?

解决方案

问题出在你直接将对象数组传给了$in操作符,但MongoDB的$in需要接收一个纯值数组(这里是用户ID字符串的数组),而非对象数组。你需要先从data数组中提取所有from字段的值,再用于查询。

步骤1:提取目标用户ID数组

使用数组的map方法遍历data,取出每个对象的from属性值,生成纯ID数组:

const targetUserIds = data.map(item => item.from);

如果data中可能存在from为空的对象,可以额外加过滤避免无效ID:

const targetUserIds = data.map(item => item.from).filter(id => id);

步骤2:执行更新操作

将提取到的ID数组传入$in,调用updateMany:

const data = [
   { _id: "66324310da5f0f7575da0292", from: "66324110da5f0f7275cd8949" }, 
   { _id: "66324350sa5f0sdd575da0s92", from: "62a34303530f3275c3d99" }
];

const targetUserIds = data.map(item => item.from);

// 替换为你的更新逻辑,比如设置某个字段
User.updateMany(
  { _id: { $in: targetUserIds } },
  { $set: { /* 你的更新字段 */ } }
)

这样就能正确匹配所有_id等于data中任意from值的用户了。

内容的提问来源于stack exchange,提问作者Max adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:51:05