0

这是我的数据库

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()”
    }

});

也就是说,应该为同一用户附加播放列表记录。

  1. 如果同一用户的记录不存在,则应在我们第一次插入记录时插入记录。

现在,我不知道如何使用猫鼬在上面的东西提前谢谢

4

2 回答 2

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,您可以使用它来访问它。

在添加播放列表之前检查给定用户是否存在 - 您的应用程序代码应该真正做到这一点,并将用户创建为单独的操作。

于 2013-09-11T09:11:58.310 回答
0

作为西蒙,您需要将播放列表作为播放列表模式数组。完成后,您需要阅读两个文档:

修改文档 - http://docs.mongodb.org/manual/tutorial/modify-documents/ 和数组更新操作符 - http://docs.mongodb.org/manual/reference/operator/update-array/

于 2013-09-12T02:08:17.753 回答