在猫鼬中追加子记录
Posted
技术标签:
【中文标题】在猫鼬中追加子记录【英文标题】:Append sub record in mongoose 【发布时间】:2013-09-15 04:27:42 【问题描述】:这是我的数据库
db.table_name(
_id: “object_id()”,
user_id: <user_name>,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
);
现在,表格指出,有一个用户,有播放列表字段,现在我希望当我第一次插入记录时,插入应该像这样:
_id: objectid12345,
user_id: 1,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
);
现在,当我第二次插入记录时,对于同一用户,它应该首先检查同一用户的数据是否存在?
1.如果是的话,数据应该这样插入:
_id: objectid12345,
user_id: 1,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
);
同样,当我为同一个用户进行下一次插入时,插入应该是这样的:
_id: objectid12345,
user_id: 1,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
,
playlist:
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
);
也就是说,应该为同一用户附加播放列表记录。
-
如果同一用户不存在记录,则应在我们第一次插入记录时插入记录。
现在,我不知道如何使用 mongoose 提前致谢
【问题讨论】:
【参考方案1】:首先,播放列表应该是一个对象数组,所以你有:
playlists : [
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
,
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
,
types: "show",
video_url: “video source url”,
thumb_url: “thumb url”,
title: “video title”,
created_date: “new date()”
]
您还想将其定义为嵌套模式,如下所示:
var playlistSchema = new mongoose.Schema(
type: String,
video_url: String
);
然后在你的用户架构中引用它,例如:
var userSchema = new mongoose.Schema(
ser_id: String
playlists: [playlistSchema]
);
当您为用户创建新播放列表时,Mongoose 会自动为其提供一个唯一的_id
,您可以使用它来访问它。
在添加播放列表之前检查给定用户是否存在 - 您的应用程序代码应该真正做到这一点,并将创建用户作为单独的操作。
【讨论】:
【参考方案2】:作为 Simon,您需要将播放列表作为播放列表架构数组。完成后,您需要阅读两个文档:
修改文档 - http://docs.mongodb.org/manual/tutorial/modify-documents/ 和数组更新运算符 - http://docs.mongodb.org/manual/reference/operator/update-array/
【讨论】:
以上是关于在猫鼬中追加子记录的主要内容,如果未能解决你的问题,请参考以下文章