Mongodb 我应该在Mongo保留柜台吗?
我有两个收藏:曲目和用户 简化:Mongodb 我应该在Mongo保留柜台吗?,mongodb,mongoose,Mongodb,Mongoose,我有两个收藏:曲目和用户 简化: trackSchema = new mongoose.Schema title: String artist: String userId: String playlists: [String] userSchema = new mongoose.Schema username: String trackCount: Integer playlists: {} 因此user.playlists记录每个播
trackSchema = new mongoose.Schema
title: String
artist: String
userId: String
playlists: [String]
userSchema = new mongoose.Schema
username: String
trackCount: Integer
playlists: {}
因此user.playlists记录每个播放列表中的曲目数量,trackCount记录用户的曲目总数
假设user1有两个曲目,track1和track2。两者都属于一个名为myplaylist的播放列表,我会
track1.playlists = ["myplaylist"]
track2.playlists = ["myplaylist"]
user1.playlists = { myplaylist: 2 }
user1.trackCount = 2
以这种方式跟踪计数器是一种好方法吗?我发现这会使实现复杂化,但我确保Mongo不会在每次我需要时查询计数,这有意义吗?这取决于您将如何存储播放列表和曲目。是否每个用户都有一组播放列表,然后每个播放列表都有一组曲目?如果是这样,不要在用户级别存储计数。相反,只需抓取整个对象,您就可以检查数组的长度。曲目是一个集合,但播放列表是非规范化的,它存储在曲目和用户中。如果您的应用程序需要并经常使用这些内容,请编辑该问题以提供更多信息,这似乎值得维护。