在Mongoose中为现有模式定义嵌套对象,可以使用以下步骤:
npm install mongoose
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my_database', { useNewUrlParser: true, useUnifiedTopology: true });
const Schema = mongoose.Schema;
const addressSchema = new Schema({
street: String,
city: String,
state: String,
zip: String
});
const userSchema = new Schema({
firstName: String,
lastName: String,
age: Number,
address: addressSchema
});
const User = mongoose.model('User', userSchema);
在这个示例中,我们首先定义了一个名为addressSchema
的模式,用于表示地址信息。然后,我们在userSchema
中定义了一个名为address
的嵌套对象,它使用了addressSchema
模式。
// 创建用户
const user = new User({
firstName: 'John',
lastName: 'Doe',
age: 30,
address: {
street: '123 Main St',
city: 'Anytown',
state: 'CA',
zip: '12345'
}
});
user.save(function (err) {
if (err) return console.error(err);
console.log('User saved successfully');
});
// 查询用户
User.findOne({ firstName: 'John', lastName: 'Doe' }, function (err, user) {
if (err) return console.error(err);
console.log('Found user:', user);
});
// 更新用户地址
User.findOne({ firstName: 'John', lastName: 'Doe' }, function (err, user) {
if (err) return console.error(err);
user.address.street = '456 New St';
user.save(function (err) {
if (err) return console.error(err);
console.log('User address updated successfully');
});
});
这样,我们就成功地在Mongoose中为现有模式定义了嵌套对象。
领取专属 10元无门槛券
手把手带您无忧上云