0

我有两个 MongoDB 集合。questions

{
    "_id" : "8735574",
    "title" : "...",
    "owner" : {
        "user_id" : 950690
    },
}
{
    "_id" : "8736808",
    "title" : "...",
    "owner" : {
        "user_id" : 657258
    },
}

users

{
    "_id" : 950690,
    "updated" : SomeDate,
    ...
}
{
    "_id" : 657258,
    "updated" : SomeDate,
    ...
}

users必须定期创建或更新中的条目questions。因此,我想从中获取所有user_idsquestions要么根本没有条目,users要么他们的条目users超过updated一天前。

为此,我可以从结果中读取所有user_ids questions,然后手动从结果中删除所有不需要更新的用户。但这似乎是一个糟糕的解决方案,因为它读取了大量不必要的数据。有没有办法以不同的方式解决这个问题?某种集合连接会很棒,但我知道这在 MongoDB 中(真的)不存在。有什么建议么?

PS:将这些集合嵌套到单个集合中不是解决方案,因为users也必须从其他地方引用。

4

1 回答 1

2

不幸的是,没有很好的方法可以做到这一点,并且由于您无法访问索引来执行此客户端而不读取所有数据并手动操作它,因此这是唯一的方法。

可以通过查询用户集合然后$in对问题集合执行从用户到问题的连接,但这实际上是唯一可以进行的优化。

于 2013-09-18T11:52:02.587 回答