Zdefiniowałem schemat użytkownika Mongoose:
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);
parametr friends jest zdefiniowany jako tablica identyfikatorów obiektów. Innymi słowy, użytkownik będzie miał tablicę zawierającą identyfikatory innych użytkowników. Nie jestem pewien, czy jest to właściwa notacja, aby to zrobić.
Próbuję wypchnąć nowego znajomego do tablicy znajomych bieżącego użytkownika:
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);
});
});
jednak daje mi to następujący błąd:
TypeError: Object 531975a04179b4200064daf0 nie ma metody „cast”
[{"$oid": "dfdfsdfsg565ls"},...]
zamiast["hkugh87tgkgk", ....]