He definido un esquema de usuario de mangosta:
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);
el parámetro de amigos se define como una matriz de ID de objeto. En otras palabras, un usuario tendrá una matriz que contiene los ID de otros usuarios. No estoy seguro de si esta es la notación adecuada para hacer esto.
Estoy tratando de enviar un nuevo amigo a la matriz de amigos del usuario actual:
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);
});
});
sin embargo, esto me da el siguiente error:
TypeError: Object 531975a04179b4200064daf0 no tiene método 'cast'
[{"$oid": "dfdfsdfsg565ls"},...]
lugar de["hkugh87tgkgk", ....]
populate()
exactamente?Yo mismo soy nuevo en Mongoose, así que no estoy del todo seguro de que esto sea correcto. Sin embargo, parece que ha escrito:
Creo que la propiedad que está buscando se encuentra aquí:
Sin embargo, es posible que los documentos hayan cambiado desde que publicó esta pregunta. Disculpas si ese es el caso. Consulte los documentos de Mongoose SchemaTypes para obtener más información y ejemplos.
fuente
Intentaría esto.
o
pero no estoy seguro de si esto es correcto.
fuente