我正在使用Mean.js构建Restful API。
我有一个文章模型:
var ArticleSchema = new Schema({
title: { ... },
content: {...},
...
}
用户模型,其中包含用户为其添加书签的文章数组。
var UserSchema = new Schema({
name: { ... },
...
bookmarks: [{ type: Schema.ObjectId, ref: 'Article' }]
}
我想附加到从DB中检索到的文章对象计算出的布尔值“已添加书签”,表示登录用户是否已为该文章添加了书签。
我还必须重复逻辑以显示用户已经阅读过的文章,以及哪些文章对他来说是新的,并且可能是评价或喜欢/不喜欢文章的属性。所有这些都涉及同样的问题。
我该怎么做?最好的方式是什么?
我可以在DB级别或Express级别执行此操作。我试图向用户发送已经在他收到的JSON中计算过的字段。
我对任何解决方案持开放态度,并愿意在必要时改变模型,关系或逻辑。
答案 0 :(得分:0)
我会建议这样的事情;
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' }]
}