Mongoose 从 subDocument 中检索数组

Posted

技术标签:

【中文标题】Mongoose 从 subDocument 中检索数组【英文标题】:Mongoose retrieve array from subDocument 【发布时间】:2021-11-20 21:44:36 【问题描述】:

我正在尝试获取给定用户拥有的所有股票的数组。

...

const user = await User.findById(verified._id);
if (!user) 
  return next(new ErrorLibrary('No user found', 401));

这是我用于检索用户 ID 的代码。下一步(我坚持)是获取与用户对应的所有股票的数组。

我已尝试关注

const stock = await User.stocks.findById(req.params.id);
if (!stock) 
  return next(new ErrorLibrary('No stock found', 401));


OUTPUT: 
"Cannot read properties of undefined (reading 'findById')"
[
  
    "_id":"61534b363e5f39d6ce2c2c57",
    "firstName":"firstname",
    "lastName":"lastname",
    "email":"email",
    "password":"$2a$10.......",
    "tokenVersion":0,
    "stocks":[
      
        "ticker":"TEST",
        "lots":[
          
            "per_share_cost":1220,
            "quantity":2,
            "_id":"6153608867fae1373d272a4a",
          
        ],
        "_id":"6153608867fae1373d272a49"
      
    ],
    "__v":0
  
]

【问题讨论】:

【参考方案1】:

试一试

await User.find(applyYourConditionHere);

【讨论】:

那么我检索子文档的条件是什么?文档显示了这一点: const doc = parent.children.id(_id);但我得到与上面相同的输出错误 在尝试您的建议时,我只收到了一个用户,该用户的股票 id 为 req.params.id... 我想获得一个仅包含股票的数组 您的答案可以通过额外的支持信息得到改进。请“编辑”以添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到更多关于如何写好答案的信息:***.com/help/how-to-answer。祝你好运?

以上是关于Mongoose 从 subDocument 中检索数组的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose TypeError:用户不是构造函数

MongoDB/Mongoose - 与 geoNear 和子文档的聚合

使用聚合 mongodb mongoose 将集合子子文档与其他集合子文档连接起来

使用打字稿创建猫鼬模型 - 子文档

MongoDB C# 驱动程序 - Last SubDocument Field Eq to 'X' 的位置

从client(content="<p></p>")中检測到有潜在危急的 Request.Form 值。