2017-02-25 4 views
1

benötigen Benutzer-ID für meine Benutzer hinzufügen, dass meine Sammlung Artikel + count 1 sein wird Zum Beispiel, wenn ich 100 Benutzer haben, Benutzer-ID des nächsten Benutzer 101.Wie setze ich eine Variable in meine Abfrage? (Mungo)

User.count().exec(function (e, count) { 
    console.log(count); // Count = 15, correct. 
    newUser.userId = count + 1; // Ain't working... 
}); 

sein wird, also Wie füge ich "count" -Variable zu meiner Anfrage hinzu? Oder ist es fortgeschrittener Weg, um Auto-Inkrement (Primärschlüssel) in Mungo zu bekommen?

+0

Warum benötigen Sie die ID zum automatischen Inkrementieren? Was ist dein Zweck dafür? Möchten Sie eine eindeutige ID für alle Benutzer, oder gibt es ein anderes Motiv –

+0

@Ravi Shankar geben Sie jedem Benutzer eindeutige ID und einen Link wie Benutzer/1 ... Benutzer/1242. Sie denken, dass es eine schlechte Idee ist, eine eindeutige ID in MongoDB hinzuzufügen? –

Antwort

1

Ihre Annahme ist richtig, dass es einen anderen Weg gibt, den "Primärschlüssel" eines Dokuments zu erhalten. Verwenden Sie objName._id (in Ihrem Fall newUser._id), um auf einen eindeutigen Wert zuzugreifen, der bei der Objekterstellung für Ihr Dokument generiert wurde.

Beachten Sie, dass MongoDB keine relationale DB ist, also ist es kein Primärschlüssel und es wird eine Kette von Müll sein. Wenn Sie tatsächlich eine automatische Inkrementierung _id benötigen, können Sie das auch tun, indem Sie den dokumentierten Prozess here. verwenden. Erstellen Sie einen Zähler mit db.counters.insert, dann erstellen Sie Ihre eigene Funktion, die findAndModify verwendet, um die Sequenznummer db.counters abzurufen und dann zu erhöhen. Schließlich können Sie Ihr Dokument in User (oder etwas ähnliches) einfügen, indem Sie _id auf das Ergebnis des Aufrufs dieser Funktion während des Aufrufs zum Einfügen setzen.

Verwandte Themen