MEAN.js MongoDB查询中用户特定计算的属性

User specific calculated attibute in MEAN.js MongoDB query

本文关键字:计算 属性 用户 js MongoDB 查询 MEAN      更新时间:2024-05-11

我正在使用Mean.js.构建一个Restful API

我有一个文章模型:

var ArticleSchema = new Schema({
    title: { ... },
    content: {...},
    ...
}

还有一个用户模型,它有一组用户为其添加书签的文章。

var UserSchema = new Schema({
    name: { ... },
    ...
    bookmarks: [{ type: Schema.ObjectId, ref: 'Article' }]
}

我想将一个计算的布尔属性"Bookmarked"附加到从DB中检索的Articles对象,指示登录用户是否已为文章添加了书签。

我还必须重复这个逻辑,以显示用户已经阅读了哪些文章,哪些是新的,也许还有一个属性来评价或喜欢/不喜欢这篇文章。所有这些都涉及同一个问题。

我该怎么做?最好的方法是什么

我可以在DB级别或Express级别上执行此操作。我正在尝试向用户发送他将收到的JSON中已经计算出的字段。

我对任何解决方案都持开放态度,并愿意在必要时更改模型、关系或逻辑。

我会提出这样的建议;

var ArticleSchema = new Schema({
    title: { ... },
    content: {...},
    ...
    bookmarkedBy : [{ type: Schema.ObjectId, ref: 'User' }]
    readBy : [{ type: Schema.ObjectId, ref: 'User' }]
    likedBy : [{ type: Schema.ObjectId, ref: 'User' }]
    dislikedBy : [{ type: Schema.ObjectId, ref: 'User' }]
}
var UserSchema = new Schema({
    name: { ... },
    ...
    bookmarks: [{ type: Schema.ObjectId, ref: 'Article' }]
    likes: [{ type: Schema.ObjectId, ref: 'Article' }]
    dilikes: [{ type: Schema.ObjectId, ref: 'Article' }]
    bookmarks: [{ type: Schema.ObjectId, ref: 'Article' }]
}