我们有3个实体
的第
注意
的注释
文章可以有0个或多个Notes,Note可以有0个或多个注释
我们的行动
1.我们想通过Note id来从db single note中获取
我们想在文章中添加新的注释
3.我们想在Note
方案1
{
_id: 'article_1',
name: "Article 1",
notes: [{
_id: 'note_1',
name: 'Note 1',
comments: [{
content: 'Hello World'
}]
}]
}
方法1
1. db.Article.find({_id: 'article_1', 'notes._id': 'note_1'}, {'notes.$': 1})
2. db.Article.update({_id: 'article_1'}, {$push: {notes: {_id: 'note_2', name: 'note2'}}})
3. db.Article.update({_id: 'article_1', 'notes._id': 'note_2'}, {$push: {'notes.$.comments': {content: 'Hi !!!'}}})
方案2
{
_id: 'article_2',
name: "Article 2",
notes: {
'note_1': {
name: 'Note 1',
comments: [{
content: 'Hello World'
}]
}
}
}
方法2
1. db.Article.find({_id: 'article_2'}, {'notes.note_1':1})
2. db.Article.update({_id: 'article_2'}, {$set: {'notes.note_2': {name: 'note2'}}})
3. db.Article.update({_id: 'article_2'}, {$push: {'notes.note_2.comments': {content: 'Hi !!!'}}})
哪种方案和方法被认为是最佳实践,哪种方案和方法可以获得更好的性能和原因 谢谢