【问题标题】:dbref command in mongodbMongoDB中的dbref命令
【发布时间】:2012-08-25 18:48:56
【问题描述】:

我是 mongodb 的新手。我需要使用 dbref 通过引用两个集合来进行查询,并且需要查询特定字段。

cmets 集合

        { 
          uid:12345, 
          pid:444, 
          comment="blah" 
        },

        { 
          uid:12345,
          pid:888, 
          comment="asdf" 
        },

        { 
          uid:99999, 
          pid:444, 
          comment="qwer" 
        }

用户集合

        { 
          uid:12345, 
          name:"john" 
        },

        { 
          uid:99999,
          name:"mia"  
        }

我可以知道如何通过在两个集合之间添加引用来在 mongodb 中插入这些集合使用 dbref 的命令吗? uid 中的 cmets 必须引用用户的 uid。

【问题讨论】:

    标签: mongodb mongodb-java mongodb-query


    【解决方案1】:

    Database References (DBRefs) 是存储与其他集合相关的 ID 的约定,但不是 MongoDB 服务器支持的功能(即“连接”)。根据您用于访问 MongoDB 的 language driver,可能会支持跟踪 DBRefs 并获取相关文档..但这确实涉及额外的查询,就像您手动执行的一样。

    因此,在单独的集合中查找与用户相关的 cmets 的伪代码类似于:

    1. find({..})感兴趣的用户
    2. 对于找到的每个用户
    3. ...find({uid:...})该用户的所有 cmets

    根据您的用例,您可能需要考虑嵌入信息而不是链接。例如,comments 集合实际上可能更适合嵌入到posts 集合中(站点上的每个post 都有许多嵌入的comments)。嵌入式 cmets 可能包含一些基本用户信息,例如显示名称,因此您不必在 users 集合中查找这些信息即可呈现页面。

    欲了解更多信息,请参阅:

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 2012-02-01
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多