Nach this mongodb article ist es möglich, ein Feld automatisch zu inkrementieren, und ich möchte die Zähler Sammlungsweise verwenden.Mongoose Autoinkrement
Das Problem mit diesem Beispiel ist, dass ich nicht habe Tausende von Menschen die Daten in der Datenbank mit der Mongo-Konsole eingeben. Stattdessen versuche ich, Mungo zu benutzen.
Also mein Schema sieht wie folgt aus:
var entitySchema = mongoose.Schema({
testvalue:{type:String,default:function getNextSequence() {
console.log('what is this:',mongoose);//this is mongoose
var ret = db.counters.findAndModify({
query: { _id:'entityId' },
update: { $inc: { seq: 1 } },
new: true
}
);
return ret.seq;
}
}
});
ich den Zähler Sammlung in derselben Datenbank erstellt haben und eine Seite mit dem _id von ‚EntityID‘ hinzugefügt. Von hier bin ich nicht sicher, wie man Mungo benutzt, um diese Seite zu aktualisieren und die steigende Zahl zu erhalten.
Es gibt kein Schema für Counter und ich möchte, dass es so bleibt, weil dies nicht wirklich eine Entität ist, die von der Anwendung verwendet wird. Es sollte nur in den Schemas verwendet werden, um Felder automatisch zu inkrementieren.
Schema-Standardwerte können nicht asynchron sein, dies funktioniert nicht. Wenn Sie auf der Seite mugoose [plugins] (http://plugins.mongoosejs.com/) nach "auto increment" suchen, finden Sie einige Optionen. – JohnnyHK
@JohnnyHK Vielen Dank für Ihre Antwort. Die Plugins arbeiten auf Update-Event und etwas, das ich lieber vermeiden würde, Suche nach Autoinkrement brachte mich zum mongodb Artikel in erster Linie und npm installierbare Plugins für Mungo, die ereignisbasiert zu sein scheinen. – HMR
Kannst du mir bitte sagen, welchen Ansatz du benutzt hast ?? Und wenn es mehrere gleichzeitige Anfragen gibt, wie geht Ihre Lösung damit um? –