我有以下模式;地址是經過地理編碼的地點,機構有許多地址。我的問題是,如果我希望能夠根據地址對代理機構執行地理空間搜索,那麼我是否需要以代理級別對其進行索引(已在地址架構級別進行了索引)?可以/應該在Mongoose中索引嵌入式文檔嗎?
此外,我很難找到有關如何找到基於嵌套文件的信息。在這種情況下,甚至有可能做我希望的或者我應該擴大我的域名結構,並有一個「AgencyAddress」?這種方法對我來說似乎有點RDBMS,但我也可以看到它的優點。
我對如何使用來自Agency(或橋對象AgencyAddress)的ObjectId refs沒有從地址返回的反向鏈接有點困惑。我不想擁有反向鏈接,因爲地址將被應用程序中的許多其他對象使用。
謝謝!
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