Ich habe ein Mungo-Benutzerschema definiert:
var userSchema = mongoose.Schema({
email: { type: String, required: true, unique: true},
password: { type: String, required: true},
name: {
first: { type: String, required: true, trim: true},
last: { type: String, required: true, trim: true}
},
phone: Number,
lists: [listSchema],
friends: [mongoose.Types.ObjectId],
accessToken: { type: String } // Used for Remember Me
});
var listSchema = new mongoose.Schema({
name: String,
description: String,
contents: [contentSchema],
created: {type: Date, default:Date.now}
});
var contentSchema = new mongoose.Schema({
name: String,
quantity: String,
complete: Boolean
});
exports.User = mongoose.model('User', userSchema);
Der Parameter friends ist als Array von Objekt-IDs definiert. Mit anderen Worten, ein Benutzer verfügt über ein Array, das die IDs anderer Benutzer enthält. Ich bin mir nicht sicher, ob dies die richtige Notation dafür ist.
Ich versuche, einen neuen Freund in das Freundesarray des aktuellen Benutzers zu verschieben:
user = req.user;
console.log("adding friend to db");
models.User.findOne({'email': req.params.email}, '_id', function(err, newFriend){
models.User.findOne({'_id': user._id}, function(err, user){
if (err) { return next(err); }
user.friends.push(newFriend);
});
});
Dies gibt mir jedoch den folgenden Fehler:
TypeError: Objekt 531975a04179b4200064daf0 hat keine Methode 'cast'
[{"$oid": "dfdfsdfsg565ls"},...]
["hkugh87tgkgk", ....]
populate()
genau?Ich bin selbst neu bei Mongoose, daher bin ich mir nicht ganz sicher, ob dies richtig ist. Sie scheinen jedoch geschrieben zu haben:
Ich glaube, die Immobilie, die Sie suchen, befindet sich tatsächlich hier:
Es kann jedoch sein, dass sich die Dokumente geändert haben, seit Sie diese Frage gestellt haben. Entschuldigung, wenn das der Fall ist. Weitere Informationen und Beispiele finden Sie in den Mongoose SchemaTypes-Dokumenten .
quelle
Ich würde es versuchen.
oder
aber ich bin nicht sicher, ob das richtig ist.
quelle