我有一个应用程序,它使用文本索引查询MongoDB数据库,需要从多个集合中返回对象,就像Instagram查询同时查找人、标签或位置一样。我正在寻找一种方法,可以将这些集合正常分开,但是只使用单个MongoDB索引来索引三个集合。我一直在寻找这个功能,但是我发现的都是在同一集合内使用多列索引和复合索引。在MongoDB上是否可能实现此目标?而不需要创建另一个集合来存储所有对象呢?如果不行,我能否使用类似全文和地理位置索引的相似索引来查询多个集合?
MongoDB大多数情况下不提供跨集合的通信,主要是为了保持高可用性和可扩展性。($lookup是个例外)
所以,不支持在不同集合之间进行索引跨度?不支持在不同集合之间进行连接(至少对于健康使用来说是不支持的)。触发器?不支持(尚未支持)。事务?不支持。
如果按照关系型数据库最佳实践使用MongoDB,那将会很混乱。学会去规范化。