繁体   English   中英

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

[英]Update collection based on data in another collection in 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,
    ...
}

必须根据questions定期创建或更新users的条目。 所以,我想获得的所有user_id从s questions ,要么没有在入门users在其全部或入门usersupdated前一天比如多。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM