私は以下のスキーマを持っています。住所はジオコーディングされた場所であり、代理店には多くの住所があります。私の質問は、住所に基づいて代理店の地理空間検索を実行できるようにするには、代理店レベル(既に住所スキーマレベルで索引付けされている)で何らかのインデックスを作成する必要がありますか?Mongooseで埋め込み文書のインデックスを作成することはできますか?
また、ネストされたドキュメントに基づいて検索する方法に関する情報を見つけるのが難しいです。このシナリオでは、私が望んでいることを実行することさえ可能ですか、私はドメイン構造を少し拡張して、 "AgencyAddress"を持っているべきですか?このアプローチは私には少しRDBMSのようですが、私はそれの利点を見ることもできます。
私は、AgencyA(またはブリッジオブジェクトAgencyAddress)からのObjectId refをどのように使用して、逆のリンクバックアドレスなしで使用できるか混乱しています。アドレスはアプリ内の他の多くのオブジェクトによって使用されるため、私はリンクをバックにしたくありません。
ありがとうございます!
var AddressSchema = new Schema({
name : {type: String, default : ''},
street1 : {type: String, default : ''},
street2 : {type: String, default : ''},
city : {type: String, default : '', required: true},
state : {type: String, required : true},
zip : {type: String, default ''},
country : {type: String},
location : {longitude: Number, latitude:Number}
type : {type: String, enum:['agent', 'agency', 'registrant'], index:true}
created_at : {type: Date, default: Date.now},
updated_at : {type: Date, default: Date.now}
primary : {type: Boolean, default: false}
});
AddressSchema.index({location: '2d'});
庁:
var AgencySchema = new Schema({
name : {type : String, default : '', required : true},
Type : {type : String, enum['medical', 'disaster-service', 'local-law', 'state-law', 'federal-law'], index:true},
Addresses : [Address],
created_at : {type : Date, default : Date.now},
updated_at : {type : Date, default : Date.now}
});
ああ、完璧な男です。ありがとうございました。 – Chance
それは私にとって完璧だとは思わない。 mongoコンソールでインデックスが作成されることは本当に必要条件ですか? – Greg
@Greg「インデックスがmongoコンソールで作成されるというのは本当に必要条件なのですか?」というのは、あなたが使用している言語ドライバを使って行うことができます。私はコンソールから言いました。モンゴースの経験はありません。 – RameshVel