私はコレクションを動的にクエリする方法を頭で覆そうとしています。私は以下のスキーマを持つコレクションを持っています。ダイナミックMongoDbクエリを構成する方法
Tripart_Property_Schema = new SimpleSchema({
"type" : {
type : String,
label : 'Property type',
},
"sale_lease" : {
type : String,
label : '',
},
"location" : {
type : Object,
label : '',
optional : true
},
"location.state" : {
type : String,
label : 'state',
},
"location.lga" : {
type : String,
label : 'lga',
optional : true
},
"location.address" : {
type : String,
label : 'address',
optional : true
},
"amount" : {
type : Object,
label : '',
optional : true
},
"amount.amount" : {
type : Number,
label : '',
optional : true
},
"amount.discount" : {
type : Number,
label : '',
optional : true
},
"active" : {
type : Boolean,
label : '',
optional : true
},
"views" : {
type : Number,
label : '',
optional : true
},
"date_added" : {
type : Date ,
label : '',
optional : true
},
"general_features" : {
type : [String],
label : '',
optional : true
},
"outdoor_features" : {
type : [String],
label : '',
optional : true
},
"indoor_features" : {
type : [String],
label : '',
optional : true
},
"other_facilities" : {
type : Object,
label : '',
optional : true
},
"other_facilities.bedroom" : {
type : Number,
label : '',
optional : true
},
"other_facilities.bathroom" : {
type : Number,
label : ' ',
optional : true
},
"other_facilities.garage" : {
type : Number,
label : '',
optional : true
},
"other_facilities.staffQuaters" : {
type : Number,
label : '',
optional : true
}
});
ユーザーが使用可能なフィールドの任意の組み合わせを使用してデータを照会できるユーザーインターフェイスを作成しました。ユーザーは、sale_lease
フィールド、amount.amount
フィールドを使用してプロパティを検索するクエリを作成し、配列であるgeneral_features
フィールドを照会することもできます。ユーザーが選択した設定に基づいてこのクエリを生成する方法がわかりません。私は手で質問されたフィールドを知っているクエリを実行する方法を知っていますが、それを動的にすることはどこに問題があるかです。
複数のフィールドを使用できるようにするために複数の文を使用しようとしていますが、これを実現する方法ではないことがわかりました。私は正しい方向を指すことができれば非常に感謝します。
いいえ、あなたはそれをexpatiateできません。ありがとうございます –
申し訳ありません、質問を誤読 – chridam
を参照してください。https://stackoverflow.com/questions/31995166/mongoose-optional-search-query-parameters – JohnnyHK