参见mongoose
两集合schema
如下:
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
var storySchema = Schema({
_creator : { type: Number, ref: 'Person' },
title : String,
fans : [{ type: Number, ref: 'Person' }]
});
当fans
中的一个person
取消了对story
的喜好(fans
的理解不知道对不对)
那么story.fans
是数组,可以delete
掉该person
的数据
这个感觉还比较容易update
如果一个person
的story
不正确,同时story
集合中并不存在该person
的正确story
;
那么是remove
该person
的field:stories
吗?
还是能够将该person
的field:stories
这个ObjectId
类置空?
希望各位能够提供一些建议?
If I understand correctly, how to handle it depends on the needs of the application.
However, the second situation you assumed will usually not occur if the populate is normal.
For reference.
When paying attention
Add Stroy to Person (
$addToSet
remove duplicates,$push
)$addToSet
去重,$push
)添加 fans
$addToSet
(去重),$push
(不去重)取消关注
删除 Person (
$pull
)删除 fans (
Add fans$pull
$addToSet
(remove duplicates),$push
(do not remove duplicates)🎜 rrreee 🎜Unfollow🎜 🎜Delete Person ($pull
)🎜 rrreee 🎜Delete fans ($pull
)🎜 rrreee