[英]How do I push to an array within an array in a collection with mongoose?
我有一个用Mongoose创建的User schema
,该User schema
包含一个customer
数组,并且在该customer
数组内还有另一个fleet
数组。 我已经弄清楚了如何在User schema
推送到customer
数组,但是我无法弄清楚如何遍历客户,通过ID或名称查找customer
,然后将数据推送到fleet
数组中。
这是我的User schema
:
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
username: {
type: String,
default: ''
},
password: {
type: String,
default: '',
},
registerDate: {
type: Date,
default: Date.now()
},
customer: [{
name: {
type: String,
default: '',
},
email: {
type: String,
default: 'No email addresses found',
},
fleet: [{
unitType: {
type: String,
default: 'No type selected',
},
unitNumber: {
type: String,
default: 'No unit number provided',
},
vinNumber: {
type: String,
default: 'No vin number provided'
},
}]
}]
});
module.exports = mongoose.model('User', UserSchema);
我能够弄清楚如何将新客户推入customer
。 我的问题是我不知道如何遍历customer
阵列,一旦找到所需的customer
,就将数据推送到fleet
阵列中。 我真的对如何在Google搜索中写词感到困惑! 希望它已经足够详细了,如果您需要查看其他代码,请告诉我。
您需要使用位置“ $”操作。 在这里阅读
UserSchema.update(
{'customer.email':'xyz@email.com'},
{
$push:{
'customer.$.fleet':<fleet object>
}
},function(err,result){
})
- - 要么 - -
UserSchema.update(
{'customer.email':'xyz@email.com'},
{
$set:{
'customer.$.fleet':[fleet array]
}
},function(err,result){
})
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.