0

これはマングースのバグであるか、何かが足りない可能性があります。タイトルが示すように、配列を含むいくつかのフィールドを持つスキーマがあります:(以下のスキーマ)

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が配列を持つフィールドを処理する方法のバグですか?後者の場合は、バグを報告してその解決策に取り組みます。ありがとう

4

0 に答える 0