【发布时间】:2023-03-10 03:05:02
【问题描述】:
首先,我已经阅读了this thread,它并没有真正帮助我解决这个特殊问题。我也是 MongoDB 新手。
我的db.songs 收藏中有一个文档:
{
"title" : "Ignorance"
"artist" : "Paramore"
"listeners" : ["John", "Bill", "Amber"]
}
我希望在 users 键上强制不重复,这样每当我按下“John”或现有用户时,我都会收到错误消息。我可以在 mongo shell 中执行此操作吗?如果可以,我如何配置我的集合以使用此行为?
一些示例代码应该给我一个重复的错误(或一些类似的错误):
db.songs.update({title:"Ignorance"}, {'$push':{listeners:"John"}})
提前谢谢你。
【问题讨论】:
-
也许这个文档页面会有所帮助 - docs.mongodb.org/manual/core/index-multikey
-
我尝试了
db.songs.ensureIndex({listeners:1},{unique:true}),但它阻止了我制作具有相同听众的新歌。不过我可能用错了。 -
唯一索引不起作用!它是集合范围的,这可能就是您遇到错误的原因,删除该索引并改用 $addToSet
标签: mongodb mongo-shell