提问者:小点点

检查objectid是否存在于保存文档中所有objectid的数组字段中的最佳方法是什么?


我有一份这样的文件:

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

一个用户可以有许多订阅,但我怀疑它永远不会达到超过一百万的数字。 现在我要检查订阅id是否已经存在。 做这件事的最好方法是什么? 我是使用数组函数循环访问订阅字段的内容,还是使用mongoose查询db并查看字段中是否存在此id? 请举出一个例子,并稍作阐述。


共1个答案

匿名用户

您可能最好重新构造您的模式,以便订阅字段的值是一个对象,而不是一个数组。 这样,您将有固定的时间查找给定的订阅ID。 因此当前的内容将变为:

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