【问题标题】:Pushing object into subdoc's subdoc in Mongoose? How can it be done?将对象推送到 Mongoose 中的子文档的子文档中?怎么做到呢?
【发布时间】:2016-11-06 19:50:12
【问题描述】:

我似乎无法在任何地方找到这个问题的任何答案。

我的模式模型看起来有点像 DB 中的:

    User{
    "email"
    "password"
    "eventList" : [ 
        {
            "eventName"
            "allParticipants" : [
                              "email"
                              "password"
        ]}

显然,如果我想像这样推送电子邮件和密码,javascript 不喜欢:

const email = req.body.email;
const password = req.body.password;

    const participant = new User({
          email: email,
          password: password,

        });

    User.eventList.participants.push({ 
        allParticipants: participant,
        });

您将如何处理将对象推入嵌套数组的嵌套数组? 非常感谢您!

【问题讨论】:

    标签: javascript arrays node.js mongoose


    【解决方案1】:

    这里有几个问题。

    1.您正在尝试将数据设置在 User 上,这是您的 Mongoose 模型,而不是 participant,这是您的用户实例

    您需要使用participant.eventList 而不是User.eventList。后者指的是您的 Mongoose 模型,并且不存在。

    2。创建用户时 eventList 可能不存在。

    除非您设置了默认值,否则当您创建用户时,participant.eventList 为空。您需要将一个对象推送到该数组,根据您的架构,该数组应具有键 eventNameallParticipants

    【讨论】:

    • 感谢您的评论!参与者在事件列表中的原因是因为一个用户可能属于多个事件,我希望他们能够首先从列表中进行选择。然后,对于某个事件,人们应该像在 Facebook 上一样被推送。
    • 我一直在想......如果我为 1 个数据库创建 2 个模式,你认为它会起作用吗? 1个用于用户,1个用于事件。然后可以将事件推送给用户,我只会称他们为客户端的参与者?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2018-05-17
    • 2021-02-16
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多