2

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

评论集合

        { 
          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"  
        }

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

4

1 回答 1

2

数据库引用 (DBRefs)是用于存储与其他集合相关的 ID 的约定,但不是 MongoDB 服务器支持的功能(即“连接”)。根据您用于访问 MongoDB 的语言驱动程序,可能会支持跟随 DBRefs 和获取相关文档.. 但这确实涉及额外的查询,就像您手动执行此操作一样。

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

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

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

有关更多信息,请参阅:

于 2012-08-31T06:08:51.667 回答