V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
SevenNight2020
V2EX  ›  MongoDB

新人小白求教

  •  
  •   SevenNight2020 · 13 天前 · 876 次点击
    MongoDB 下,我现在有两张表,一张是群组 group 表,一张是组子项 item 表,现在 group 有一个 online 字段,item 也有一个 online 字段,我希望在 group 下线的时候同时更新其下所有的 item 也下线 这个通过 MongoDB 要怎么实现啊,老哥哥们给提供点思路或者解决方案呗,我刚接触 MongoDB ,没啥经验
    8 条回复    2024-04-17 14:00:55 +08:00
    yumc
        1
    yumc  
       13 天前
    group 下线的时候,执行 updat e 操作 item 表。
    或者两个概念放一张表中,两层结构,作为一个记录处理。

    你可以把 MongoDB 当做 MySQL 使用,MySQL 怎么处理,MongoDB 也怎么处理,知识具体的操作方式不一样,思路和数据结构是一样的;
    或者利用文档型数据库的优点,用嵌套结构都放在一起处理。
    rabbitsniper
        2
    rabbitsniper  
       13 天前
    两张表应该有通过一个 id 联系起来,更改 group online 状态时也 update item 表,最好用事务来实现
    libook
        3
    libook  
       13 天前
    非关系型数据库是可以存储结构信息的,你可以把 group 和下面的 item 组成一个树状结构存在一个集合里面,然后设置下线的时候只需要设置 group 对象的 online 属性更新为 false 就可以,在判断 item 状态的时候判断它的 group 父对象的 online 属性。

    如果因为某种原因你必须要同时更新两个集合,你可以使用 MongoDB 的事务操作。

    如果你最终发现你的数据结构是强关系模型,请换用关系型数据库。
    maocat
        4
    maocat  
       13 天前 via iPhone
    bulkwrite
    luozic
        5
    luozic  
       13 天前
    mongodb 有事务啊。
    IvanLi127
        6
    IvanLi127  
       13 天前
    要么改结构,要么接受非原子操作,要么上单机集群跑事物
    SevenNight2020
        7
    SevenNight2020  
    OP
       13 天前
    感谢各位老哥哥的建议,我大致有方向了,非常感谢!
    ashuai
        8
    ashuai  
       13 天前
    给个建议,这种言之无物的主题在这里是不受欢迎的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5648 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 06:28 · PVG 14:28 · LAX 23:28 · JFK 02:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.