Tôi đã xác định một lược đồ người dùng 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);
tham số friends được định nghĩa là một mảng ID đối tượng. Nói cách khác, một người dùng sẽ có một mảng chứa ID của những người dùng khác. Tôi không chắc liệu đây có phải là ký hiệu thích hợp để thực hiện việc này hay không.
Tôi đang cố gắng đẩy Một người bạn mới vào mảng bạn bè của người dùng hiện tại:
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);
});
});
tuy nhiên, điều này mang lại cho tôi lỗi sau:
TypeError: Object 531975a04179b4200064daf0 không có phương thức 'ép kiểu'
[{"$oid": "dfdfsdfsg565ls"},...]
thay vì["hkugh87tgkgk", ....]