【发布时间】:2015-09-07 09:58:57
【问题描述】:
我在一个集合中有文档,如下所示:
[
{
userId: 1,
itemsIds: [399957190, 366369952],
hash: '85e765840b1cd3c413404cdf6b8fb2a4'
},
{
userId: 2,
itemsIds: [349551151, 366369952],
hash: 'a28fa334515749b1b13fcd2183edb8de'
},
{
userId: 3,
itemsIds: [399957190, 366369952],
hash: '85e765840b1cd3c413404cdf6b8fb2a4'
}
]
这些是用户,他们的列表中有最喜欢的项目。我想要一个用户的列表给其他人,看看他们是否相等。如果是,我想在我的代码中将它们标记为一对并执行一些操作。
在上面的示例中,用户 1 和 3 拥有相同的收藏列表。 如何使用包含我列出的值的数组找到用户?
【问题讨论】:
-
MongoDB 本身(如果无模式),因此您不会在那里找到任何此类功能。您可以尝试使用 ODM(Object Document Mapper aka ORM for document)产品来处理这个问题,但它有自己的特点,即您需要所有驻留数据,以便在连接后创建“散列”结果。不是很明智。为了什么目的我可以问你是否认为这有必要?这里的真正目标是什么?请编辑您的问题以进行解释。长cmets是给像我这样的人问的。您的问题是详细信息,而不是 cmets。
-
我们的目标是节省时间,而不必遍历整个数组并将其与我的搜索条件数组进行比较。有意义吗?
-
不。一点意思都没有。也许如果您在“搜索”中解释了您“认为”您需要做什么,那么我们可以更好地告知您您真正“需要”什么。请编辑问题并解释。你“认为”你想要的答案是不切实际的。对于你真正“需要”的东西,我已经有了几个“猜测”。
-
我希望 数据库索引 在这里会更有用?!见docs.mongodb.org/manual/reference/operator/query/eq/…
-
我已经添加了更多细节,请看一下。
标签: javascript node.js mongodb mongodb-query aggregation-framework