【发布时间】:2014-08-18 01:01:43
【问题描述】:
我有一个用户模式和一个消息模式,它们目前是分开的,但应该是相关的。
var schemaUser = new Schema({
username: String,
encryptPass: String,
created: Date
});
var schemaMessage = new Schema({
from: String,
to: [String],
message: String,
created: Date
});
是否可以独立于消息模式创建用户模式,然后将其嵌入到消息模式的“to:”字段中的数组中?
var schemaMessage = new Schema({
from: String,
to: [schemaUser],
message: String,
created: Date
});
从那里开始,'to:' 字段中的每个嵌入式用户文档是否可以具有不同的嵌入式 'views:' 文档以及与每条消息的每个用户相关的其他字段?
这是否代表多个嵌入式用户的不同“查看”和“阅读”标准:
var schemaMessage = new Schema({
from: String,
to: [
{
schemaUser
},
{
view: {
inbox: Boolean,
outbox: Boolean,
archive: Boolean
}
},
{
read: {
marked: Boolean,
datetime: Date
},
}
],
message: String,
created: Date
});
【问题讨论】:
-
您的第二个列表完全有效。不过,不确定您对第三个列表的了解是什么,这是无效的。为什么这些部分会成为“to”字段的一部分?当然,它们会是消息或其他东西的属性。
-
@NeilLunn 对于第三个,在 to: 字段中可能有多个用户,每个用户可能对邮件进行了不同的分类(收件箱/存档/垃圾箱..等),每个用户都标记了消息在不同的时间点阅读。如何最好地表示这些因素?
标签: javascript node.js mongodb mongoose nosql