如何使用 Mongoose 查询过滤到数组类型字段中具有指定值的文档?
Posted
技术标签:
【中文标题】如何使用 Mongoose 查询过滤到数组类型字段中具有指定值的文档?【英文标题】:How to use Mongoose queries to filter to the documents that have a specified value inside an array-typed field? 【发布时间】:2021-10-15 13:47:26 【问题描述】:我知道如何使用Model.findOne
,但我希望将Mongoose queries 用于相同的任务。
如何使用 Mongoose 查询来做到这一点?
所以我有这个旧代码:
Notification.find(
subscribers: user.id
)
...
我正在研究这个替代代码:
const r = await Notification.find()
.where("subscribers")
.equals(user.id)
...
但我认为.equals
不适用于这种情况,因为subscribers
是ObjectId
s 的数组,而user.id
是基于ObjectId
的字符串。
我搜索了官方 API 文档并没有找到答案。没有错误消息。
【问题讨论】:
【参考方案1】:我找到了the Query.prototype.all
method。现在代码如下所示:
const r = await Notification.find().where("subscribers").all([user.id]);
...
【讨论】:
以上是关于如何使用 Mongoose 查询过滤到数组类型字段中具有指定值的文档?的主要内容,如果未能解决你的问题,请参考以下文章
在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档
如何使用 mongoose 和 NodeJs 在 Mongodb 的数组字段中插入数据