Om du vill använda Mongoose-befolkningsfunktionen bör du göra:
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: [{ type : ObjectId, ref: 'User' }],
accessToken: { type: String } // Used for Remember Me
});
exports.User = mongoose.model('User', userSchema);
Så här kan du göra den här frågan:
var User = schemas.User;
User
.find()
.populate('friends')
.exec(...)
Du kommer att se att varje användare kommer att ha en rad användare (den här användarens vänner).
Och det korrekta sättet att infoga är som Gabor sa:
user.friends.push(newFriend._id);