如果我有这两个集合:
Book: {
title: String,
description: String
author: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
}
User: {
_id: (generated by mongo)
username: String
}
Run Code Online (Sandbox Code Playgroud)
我想索引Book for FTS.我是否可以通过用户名搜索它,即使用户名未明确存储在书籍集合中也可以搜索?
换句话说,是否可以(或建议)索引填充的集合?
谢谢
正如布莱克七号提到的,不可能跨集合建立索引。
如果这种全文搜索对我的应用程序至关重要,经典的解决方案是对字段进行非规范化并将其包含在两个集合中。在这种情况下,您的Book
集合将如下所示:
Book: {
title: String,
description: String
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
### New field ###
username: String
},
}
Run Code Online (Sandbox Code Playgroud)
现在您可以索引author.username
.
这是否是一个好主意完全取决于您的应用程序。缺点包括username
跨集合同步以及给每个文档增加不必要的权重。
归档时间: |
|
查看次数: |
543 次 |
最近记录: |