これはマングースのバグであるか、何かが足りない可能性があります。タイトルが示すように、配列を含むいくつかのフィールドを持つスキーマがあります:(以下のスキーマ)
ThisSchema = var AssassinJobSchema = new Schema ({
codename: { type: String, index: { unique: true } },
_cat: [
{ type: ObjectId, ref: 'KillingBidsCategory' }
],
reqroute: {
start: {
_id: { type: ObjectId, ref: 'Location' },
name: { type: String },
loc: { type: [Number], index: '2d' }
},
end: {
_id: { type: ObjectId, ref: 'Location' },
name: { type: String },
loc: { type: [Number], index: '2d' }
}
targets: [ PersonToAssasinate ],
deadline: {
hours: { type: [Number], min: 0, max: 10800 }
}
});
クエリからフィールドを除外する方法、または特定のフィールドを含める方法を知っています。ただし、私が気付いたのは、配列を持つフィールドの1つを除外すると、つまりThisSchema.statics.find({'_id': x},'-reqroute -deadline',cb)
、結果にそれらのフィールドが表示され、空白になっていることだけです。
それはおそらく私が間違っていることですか?
回避策1
返すフィールドを選択することは解決策ですが、フィールドが多いドキュメントの場合、1つのフィールドを除外するためだけに9つのフィールドを含めるのは面倒になります。
回避策2
reqrouteと期限を除外したい場合はdelete
、返されたオブジェクトからそれらを除外できますが、特にJavascriptの初心者が時々把握するためには、それもより多くの作業です。
概要
除外で何か問題がありますか、それともMongooseが配列を持つフィールドを処理する方法のバグですか?後者の場合は、バグを報告してその解決策に取り組みます。ありがとう