我有基于模式的模型,例如。用户,活动,房间。所有这些实体都可以启用注释。注释存储在单独的模型注释中,因为我无法控制每个实体最终可能有多少注释。我希望能够通过评论的ID找到实体并搜索我拥有的所有模型。基本上是这样的:
[list of models to search].Find( { comment_id: id });
有什么想法吗?
答案 0 :(得分:0)
mongodb每个命令只能搜索一个集合,因此对于您的用例,您需要为每个集合单独查询。
您可以考虑将所有评论存储在一个集合中,并通过modelId
和modelName
字段引用将它们与其父模型相关联。我已成功使用该架构。听起来您将注释存储为父模型中的注释ID数组,这似乎不如完全嵌入注释或完全分离它们。
答案 1 :(得分:0)
没有什么可以阻止您将数据保存到多个集合中,因此在“搜索”集合中以及单独的“用户”,“事件”集合中。
您甚至可能希望使用solr或弹性搜索等技术来索引数据。