如何仅在猫鼬中限制一个字段

时间:2019-09-27 17:34:31

标签: node.js mongodb mongoose

我正在创建类似fb的内容...我只想在主页上显示3条评论...如何仅限制一个字段...我的模式是这样的:

const postSchema = new Schema({
    admin: { type: Types.ObjectId, ref: 'users', required: true },
    text: { type: String, required: true },
    comments: [{ 
        postId: { type: Types.ObjectId, ref: 'posts', required: true },
        admin: { type: Types.ObjectId, ref: 'users', required: true },
        comment: { type: String, required: true },
        time: { type: Date, default: Date.now }
    }],
    createdAt: { type: Date, default: Date.now },
    modified: { type: Boolean, default: false }
});

我将所有评论排列在一个数组中...我想限制它们...请帮助

1 个答案:

答案 0 :(得分:0)

尝试在MongoDB中使用$slice(投影)。 $ slice运算符控制查询返回的数组的项数。

如果您只想获取前3条评论,那么您的查询将如下所示:

db.slice.find( {}, { comments: { $slice: 3 } } )

如果您想要最后3条评论,那么您的查询将是:

db.slice.find( {}, { comments: { $slice: -3 } } )