我在模型(GroupName)和动态部分1-x(成员)中总是有一定的固定结构。Mongoose/MongoDB数据库设计
Group1
GroupName
Member 1
Member 2
Group2
GroupName
Member 1
Group3
GroupName
Member 1
Member 2
Member 3
是更好地利用两个表,并在以后通过IDS将它们连接起来是这样的:
Groups:
Group1
GroupName
GroupId
Group2
GroupName
GroupId
Members:
Member 1
GroupId
Member 2
GroupId
或使用Schema.Types.Mixed
(或其他任何东西)?以及如何以第二种方式做到这一点?
以后我会一直使用它们。从直觉我会选择第一种方法: http://blog.mongolab.com/2013/04/thinking-about-arrays-in-mongodb/
编辑: 但是即使我有这个问题的第二种方法,即一个成员可以属于多个组,我不希望存储了他两次。这些团体是独一无二的,只存在一次。
但我是MongoDb的新手,所以我想了解什么是最佳选择以及为什么。
编辑II: 我选择了两个分为两个文档。这是实施的模式不是正确的像这样的:
var mongoose = require('mongoose');
// define the schema for group model
var groupSchema = mongoose.Schema({
href: {
type: String,
required: true,
unique: true
},
title: String,
members: [id: Schema.Types.ObjectId, name: String]
});
// create the model for users and expose it to our app
module.exports = mongoose.model('group', groupSchema);
& &
var mongoose = require('mongoose');
// define the schema for member model
var memberSchema = mongoose.Schema({
id: {
type:Schema.Types.ObjectId,
required: true,
unique: true
},
amount: String,
name: String
});
// create the model for users and expose it to our app
module.exports = mongoose.model('member', memberSchema);
看看这个:http://blog.mongodb。org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1 – ZeMoon 2015-03-31 08:11:07