相关疑难解决方法(0)

MongoDB关系:嵌入还是引用?

我是MongoDB的新手 - 来自关系数据库背景.我想设计一个带有一些注释的问题结构,但我不知道用于评论的关系:embed或者reference

有一些注释的问题,比如stackoverflow,会有这样的结构:

Question
    title = 'aaa'
    content = bbb'
    comments = ???
Run Code Online (Sandbox Code Playgroud)

首先,我想使用嵌入式注释(我认为embed在MongoDB中推荐),如下所示:

Question
    title = 'aaa'
    content = 'bbb'
    comments = [ { content = 'xxx', createdAt = 'yyy'}, 
                 { content = 'xxx', createdAt = 'yyy'}, 
                 { content = 'xxx', createdAt = 'yyy'} ]
Run Code Online (Sandbox Code Playgroud)

很清楚,但我担心这种情况:如果我想编辑指定的评论,我该如何获取其内容及其问题?没有_id让我找到一个,也没有question_ref让我找到它的问题.(我是新手,我不知道如果没有_id和没有任何方法可以做到这一点question_ref.)

我必须用refembed?然后我必须创建一个新的评论集合?

embed reference mongodb

494
推荐指数
9
解决办法
15万
查看次数

Mongoose填充vs对象嵌套

使用Mongoose填充和直接对象包含之间是否存在任何性能差异(查询的处理时间)?什么时候应该使用?

猫鼬人口例子:

var personSchema = Schema({
  _id     : Number,
  name    : String,
  stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});

var storySchema = Schema({
  _creator : { type: Number, ref: 'Person' },
  title    : String,
});
Run Code Online (Sandbox Code Playgroud)

Mongoose对象嵌套示例:

var personSchema = Schema({
  _id     : Number,
  name    : String,
  stories : [storySchema]
});

var storySchema = Schema({
  _creator : personSchema,
  title    : String,
});
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

47
推荐指数
1
解决办法
2万
查看次数

使用Mongoose进行多对多映射

我的设计中有FlashcardSchemas和PackageSchemas.一个闪存卡可以属于不同的包,一个包可以包含不同的闪存卡.

您可以在下面看到我的mongoose模式定义的精简版本:

// package-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var PackageSchema = new Schema({
    id          : ObjectId,
    title       : { type: String, required: true },
    flashcards  : [ FlashcardSchema ]
});

var exports = module.exports = mongoose.model('Package', PackageSchema);

// flashcard-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var FlashcardSchema = new Schema({
    id      : ObjectId,
    type        : { type: String, default: '' },
    story       : { type: String, default: '' },
    packages    : [ PackageSchema ]
});

var …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

46
推荐指数
2
解决办法
3万
查看次数

标签 统计

mongodb ×3

mongoose ×2

node.js ×2

embed ×1

reference ×1