javascript - 检查包含文档中所有对象ID的数组字段中是否存在对象ID的最佳方法是什么?
问题描述
我有这样的文件:
{
subscriptions: [ 5cdf062b4a068f0b30cb9f18, 5afb062b4a068d9b41ab8c55, ... ],
_id: 5d6a3d0bead1c01844ec4c75,
email: 'papa@example.com',
user_name: 'Papa Roche'
}
一个用户可以有很多订阅,但我怀疑它永远不会超过一百万。现在我想检查订阅 ID 是否已经存在。最好的方法是什么?我是使用数组函数循环订阅字段的内容还是使用猫鼬查询数据库并查看该字段中是否存在此 ID?请举个例子并稍微详细说明一下。
解决方案
您可能会更好地重组您的架构,以便订阅字段的值是一个对象,而不是一个数组。这样您就可以不断地查找给定的订阅 ID。因此,您当前拥有的内容将更改为:
{
subscriptions: { 5cdf062b4a068f0b30cb9f18: {...subscriptionData}, 5afb062b4a068d9b41ab8c55: {...subscriptionData}, ... },
_id: 5d6a3d0bead1c01844ec4c75,
email: 'papa@example.com',
user_name: 'Papa Roche'
}
推荐阅读
- c++ - 在 C++ 中实现 A* 时可能存在内存泄漏
- sql - 如何使用 JPA 中的标准构建器在单个查询中使用 inbuild db 函数、子查询和连接
- r - 关于 geom_line 和 facet_wrap 的格式问题
- c# - Post multiple requests to an API but without re-using connections
- r - 如何切换列中的值?
- php - 当我点击帖子时 PHP ajax 显示帖子
- oracle - BIRT 431:Java/JDBC 的 Oracle 兼容性问题
- python-3.x - SymPy:取消不必要的变量和系数
- vue.js - 在 Windows 10 上禁用了 NPM 运行开发者不编译带有用户错误通知的资产
- google-colaboratory - 如何在colab文本中添加图片