3

select:false大量のネストされたデータが表示されないようにするために使用しています。

var Revision = {
    Timestamp : { type : Date, default: Date.now },
};

var Article = new Schema({
    Title: { type: String, required: true },
    Revisions: {type: [Revision], select:false}
},schemaOptions);

そして、仮想属性を使用して、それが小さな部分であることを示したいと思います。

Article
.virtual('LastRevision')
.get(function(){
    var revs = this.Revisions;      //undefined unless select:false is commented out 
    if ( revs && revs.length>0) {
        return revs[revs.length-1];
    }
});

select:false仮想属性ゲッターからフィールドにアクセスする方法はありますか?

4

1 に答える 1

1

現時点ではselect: false、クエリを作成するときにフィールドを強制的に選択した場合にのみ、フィールドにアクセスできます。

Article.findById(articleId, '+Revisions');

lean: true注:仮想も必要なクエリでは使用しないでください(これは、ここに来る一部の人々を助けるかもしれません)。

この github issueの詳細情報/更新。

于 2016-08-11T12:23:30.647 に答える