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

求助一个关于pymongod的引用或关联查询问题。

  •  
  •   hiwljun · 2013-11-07 16:07:20 +08:00 · 4416 次点击
    这是一个创建于 4038 天前的主题,其中的信息可能已经有所发展或是发生改变。
    POST

    {
    "_id" : ObjectId,
    "title" : "This is the title",
    "content" : "This is the text.",
    "author_id" : ObjectId,
    "category_id" : ObjectId,
    "comments" : [
    {
    "title" : "This is title",
    "content" : "This is content",
    "author_id" : ObjectId,
    },
    ]
    }

    --------------------------------------

    CATEGORY

    {
    "_id" : ObjectId,
    "category_name" : "category name"

    }

    -------------------------------------

    USER

    {
    "_id" : ObjectId,
    "user_name": "hello"
    }

    由于用户名、分类可能会进行修改,所以没有采用嵌入式的文档设计。但这样设计查询遇到了点问题,先查询出POST的所有记录,然后遍历结果再根据相应的id去查相应的名字,这样就造成每一条数据需要多次查询才可以得到发布者、评论者和分类的名字。有什么方法可以查询POST的时候就把里面的ID给匹配了。

    下面这个例子用DBRef也只有一条数据的时候可以,如果是find_all的情况下怎么把结果传到模板里去遍历。
    2 条回复    1970-01-01 08:00:00 +08:00
    EPr2hh6LADQWqRVH
        1
    EPr2hh6LADQWqRVH  
       2013-11-07 18:32:49 +08:00
    跨collection好像就不行了吧,你这样完全是像用关系型数据库一样在用mongo嘛。。Mongo又没有Join,你这不是搬起石头砸自己的脚。。。。

    用户名改的话就统一改好了,你现在这样是在每次查询的时候费事,而统一改的话只是在修改的时候费事,到底是查询的情况普遍还是修改的情况普遍?
    hiwljun
        2
    hiwljun  
    OP
       2013-11-07 19:43:04 +08:00
    @avastms 说的有理,我也觉得这样的设计有问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:18 · PVG 10:18 · LAX 18:18 · JFK 21:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.