Так что я делаю простое приложение для голосования на пицце с Flask и Mongoengine. Вот класс для Проголосовали документа:MongoDB, MongoEngine: уникальные элементы списка
class Votes(db.Document):
# reference to a date the vote started
vote = db.ReferenceField(VoteArchive)
# reference to one kind of pizza
pizza = db.ReferenceField(Pizza)
# list of references to users that voted for that pizza
voters = db.ListField(db.ReferenceField(User))
Что я не могу понять, как сделать ссылки на «избиратели», чтобы быть уникальным. Не все поле, но элементы в этом списке не повторяются, поэтому один пользователь может проголосовать за одну пиццу только один раз.
Цель состоит в том, чтобы запретить одному пользователю голосовать за пиццу дважды.
Любые идеи?
Почему бы не обновить поле с помощью $ addToSet, то это не имеет значения, если они голосовали более одного раза, так как они будут быть в избирательных комиссиях только один раз. Кроме того, выполните запрос на обновление, в котором для избирателей используется $ nin. – Ross
@Ross может объяснить, что такое $ addToSet и $ nin? –