检查包含文档中所有对象ID的数组字段中是否存在对象ID的最佳方法是什么?



我有这样的文档:

{ 
subscriptions: [ 5cdf062b4a068f0b30cb9f18, 5afb062b4a068d9b41ab8c55, ... ],
_id: 5d6a3d0bead1c01844ec4c75,
email: 'papa@example.com',
user_name: 'Papa Roche' 
}

一个用户可以有很多订阅,但我怀疑它永远不会超过一百万。 现在我想检查订阅 ID 是否已存在。最好的方法是什么?我是否使用数组函数循环访问订阅字段的内容,还是使用 mongoose 查询数据库并查看字段中是否存在此 ID?请举个例子,也稍微详细说明一下。

您可能最好重组架构,使订阅字段的值是对象,而不是数组。 这样,你将对给定的订阅 ID 进行持续的时间查找。 因此,您当前拥有的内容将更改为:

{
subscriptions: { 5cdf062b4a068f0b30cb9f18: {...subscriptionData}, 5afb062b4a068d9b41ab8c55: {...subscriptionData}, ... },
_id: 5d6a3d0bead1c01844ec4c75,
email: 'papa@example.com',
user_name: 'Papa Roche' 
}

最新更新