mongodbは結合をサポートしていないため、さまざまなビジネスコレクション、サービス、およびユーザーを検索する必要があるため、解決策を思いつきましたが、改善される。複数の参照されたコレクションでmongoとのテキストを検索
スキームの流れは次のようになります。
Business = Schema({
name:String
services:[{
type:ObjectId,
ref:'Services'
}],
specialist:[{
type:ObjectId,
ref:'User'
}]
})
User = Schema({
full_name:String
businesses:[{
_id:{
type:ObjectId,
ref:'Business'
},
name:String,
role:String,
is_owner:Boolean
}]
})
Service = Schema({
name:String,
business:{
type:ObjectId,
ref:'Business'
},
specialist:[{
type:ObjectId,
ref:'User'
}]
})
Search = Schema({
text:{
type:String,
index:'text'
},
business:{
_id:{
type:ObjectId,
ref:'Business'
},
name:String
},
services:[{
_id:{
type:ObjectId,
ref:'Service'
},
name:
}],
specialist:[{
_id:{
type:ObjectId,
ref:'User'
},
full_name:String
}]
})
企業がサービスを提供し、サービスは専門家によって行われ、毎回のビジネスは専門家を追加している、ユーザーが自分のデータに新しいビジネスを持っています特定の役割を持っています。
アイデアは、ビジネスを作成するときに検索でドキュメントを作成し、ビジネスがスペシャリストに割り当てられたサービスを作成するときに検索コレクションに追加されるという考えです。この文書の各変更では、テキストフィールドはビジネス名、サービス、および専門家の連結で更新され、テキストの索引付き検索を行う場所は単一のコレクションになります。あなたが探しているフィールドは、ビジネスにつながります。
誰がモデルと共通のコレクションの解決策の両方で検索するか提案しています。