基于MongoDB中另一个集合中的数据更新集合

时间:2013-09-18 10:15:04

标签: mongodb

我有两个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_idquestions的所有usersusers中的条目,或updated中的条目user_id questions比例如一天前。

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

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

1 个答案:

答案 0 :(得分:2)

不幸的是,没有好办法做到这一点,因为你无法访问索引以便能够在不读取所有数据并手动操作它的情况下执行此客户端,这是唯一的方法。

从用户到问题的加入可以通过查询用户集合然后对问题集合进行$in来完成,但这确实是唯一可以进行的优化。