Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB使用类似的子文档对文档进行建模_Javascript_Node.js_Mongodb_Npm_Mongoose - Fatal编程技术网

Javascript MongoDB使用类似的子文档对文档进行建模

Javascript MongoDB使用类似的子文档对文档进行建模,javascript,node.js,mongodb,npm,mongoose,Javascript,Node.js,Mongodb,Npm,Mongoose,我正在开发一个推荐功能,而且我对MongoDB还是个新手。对于如何构建包含多个类似子文档的文档,我很难找到答案。就我而言,是4个电子邮件地址 我不能有同名的属性,那么我应该如何识别它们呢 我已经将它们全部保存为属性(每封电子邮件一个),但当我以后不得不反复浏览它们时,这对我来说似乎有点不切实际 function submitReferrals({ accountCode, accountEmail, referrals }) { const email1 = referrals.ema

我正在开发一个推荐功能,而且我对MongoDB还是个新手。对于如何构建包含多个类似子文档的文档,我很难找到答案。就我而言,是4个电子邮件地址

我不能有同名的属性,那么我应该如何识别它们呢

我已经将它们全部保存为属性(每封电子邮件一个),但当我以后不得不反复浏览它们时,这对我来说似乎有点不切实际

function submitReferrals({ accountCode, accountEmail, referrals }) {

    const email1 = referrals.email1;
    const email2 = referrals.email2;
    const email3 = referrals.email3;
    const email4 = referrals.email4;

    return getConnection().then(db => db.collection('Referrals').insertOne({
        accountCode,
        accountEmail,
        email: { name: email1, signedUp: false },
        created: new Date(),
        updated: new Date()
    }).then(el => el.value));
}

您可以将阵列用于电子邮件:

function submitReferrals({ accountCode, accountEmail, referrals }) {

    const { email1, email2, email3, email4 } = referrals;

    return getConnection().then(db => db.collection('Referrals').insertOne({
        accountCode,
        accountEmail,
        emails: [
            { name: email1, signedUp: false },
            { name: email2, signedUp: false },
            { name: email3, signedUp: false },
            { name: email4, signedUp: false }
        ],
        created: new Date(),
        updated: new Date()
    }).then(el => el.value));
}
而且

我已经将它们全部保存为属性(每封电子邮件一个),但当我以后不得不反复浏览它们时,这对我来说似乎有点不切实际

function submitReferrals({ accountCode, accountEmail, referrals }) {

    const email1 = referrals.email1;
    const email2 = referrals.email2;
    const email3 = referrals.email3;
    const email4 = referrals.email4;

    return getConnection().then(db => db.collection('Referrals').insertOne({
        accountCode,
        accountEmail,
        email: { name: email1, signedUp: false },
        created: new Date(),
        updated: new Date()
    }).then(el => el.value));
}
您不需要迭代来更新它:


你可以使用数组。为什么不使用数组呢?我之前试过使用数组,但我猜是错误的语法。非常感谢,我做到了!似乎它没有显示,因为我的代表少于15