Mongoose - 如何查询ID的多个模型?

时间:2014-04-29 12:47:45

标签: node.js mongoose

我有基于模式的模型,例如。用户,活动,房间。所有这些实体都可以启用注释。注释存储在单独的模型注释中,因为我无法控制每个实体最终可能有多少注释。我希望能够通过评论的ID找到实体并搜索我拥有的所有模型。基本上是这样的:

[list of models to search].Find( { comment_id: id });

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

mongodb每个命令只能搜索一个集合,因此对于您的用例,您需要为每个集合单独查询。

您可以考虑将所有评论存储在一个集合中,并通过modelIdmodelName字段引用将它们与其父模型相关联。我已成功使用该架构。听起来您将注释存储为父模型中的注释ID数组,这似乎不如完全嵌入注释或完全分离它们。

答案 1 :(得分:0)

没有什么可以阻止您将数据保存到多个集合中,因此在“搜索”集合中以及单独的“用户”,“事件”集合中。

您甚至可能希望使用solr或弹性搜索等技术来索引数据。