für mein Projekt, möchte ich für Gruppen von Organisationen ein Mungo Dokument halten, wie folgt aus:Mongoose Einzigartige Werte in verschachtelten Array von Objekten
var groupSchema = Schema({
name : { type : String },
org : { type : Schema.Types.ObjectId, ref : 'Organization' },
...
users : [{
uid : { type : Schema.Types.ObjectId, ref : 'User' },
...
}]
});
ich aus den gleichen Benutzer verhindern möchten, dass in der gleichen Gruppe sein zweimal. Dazu muss ich erzwingen, dass users.uid im Benutzerarray eindeutig ist. Ich habe versucht, "unique: true" für uid anzugeben, aber das hat nicht funktioniert. Gibt es eine Möglichkeit, dies mit Mungo oder MongoDB ohne zusätzliche Abfragen oder Teilen des Schemas zu tun?
Edit: änderte ich den vorherigen Wert von uid zu uid: {type: Schema.Types.ObjectId, ref: 'User', Index: {einzigartig: true, dropDups: true}} Aber dies noch doesn Es scheint nicht zu funktionieren.
Edit: Angenommen, es gibt keine einfache Möglichkeit, dies zu erreichen, habe ich eine zusätzliche Abfrage hinzugefügt, die überprüft, ob der Benutzer bereits in der Gruppe ist. Dies scheint mir der einfachste Weg zu sein.
überprüfen Sie dies wird es [hilfreich] (http://stackoverflow.com/questions/12395118/mongodb-setting-unique-field) – karthick
Vielen Dank für den Link. Ich habe folgendes versucht: uid: {type: Schema.Types.ObjectId, ref: 'Benutzer', index: {unique: true, dropDups: true}} anstelle des alten Wertes für uid. Das funktioniert immer noch nicht, ich habe auch versucht, mongoDB ohne Erfolg neu zu starten. –