Mongoosejs:排除包含数组的字段仍返回空白字段

时间:2012-12-29 21:53:54

标签: mongoose

这可能是Mongoose中的一个错误,或者我遗漏了一些东西。正如标题所说,我有一个Schema,其中包含几个包含数组的字段:(下面的模式)

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 }
                }

});

我知道如何从查询中排除字段,或包含某些字段。但是,我注意到如果我排除其中一个有数组的字段,即ThisSchema.statics.find({'_id': x},'-reqroute -deadline',cb),我仍然会在结果中获得这些字段,只是它们现在是空白的。

这可能是我做错了吗?

解决方法1

选择要返回的字段是一种解决方案,但对于包含大量字段的文档而言,包含9个字段只是为了排除一个字段会变得很麻烦。

解决方法2

如果我想排除reqroute和截止日期,我可以从返回的对象中delete,但这也是更多的工作,特别是对于Javascript初学者有时要掌握。

摘要

我是否在排除错误,或者它是Mongoose如何处理数组字段的错误?如果是后者,我会提交错误并解决其问题。感谢

0 个答案:

没有答案