繁体   English   中英

如何使用猫鼬将数组中的数组推入数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM