繁体   English   中英

从嵌套对象创建MongoDB文档

[英]Creating MongoDB Document from Nested Object

我敢肯定这是一个简单的修复程序,但是我一直在努力尝试使嵌套对象的语法正确。 我正在尝试使用它来创建MongoDB文档。

Mongo文档存储两个用户之间的对话。 对话中的每条消息都存储在单独的MongoDB文档中,并且对话文档将引用属于它的每条消息。

这是会话模式(我认为可以)

var ConversationSchema = new mongoose.Schema({
  participants: [
    {
      user1: {
        id: {
                type: mongoose.Schema.Types.ObjectId,
                ref: "User"
            },
        username: String
      },
      user2: {
        id: {
                type: mongoose.Schema.Types.ObjectId,
                ref: "User"
            },
        username: String
      },
    },
  ],
  started: Number,
  messages: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: "Message"
    }
  ]
});

这是我创建对象以传递到MongoDB的许多尝试之一。

var conv = {
              participants : {
                "participants.user1.id" : req.body.senderId,
                "participants.user1.username" : req.body.senderName,
                "participants.user2.id" : req.body.recipientId,
                "participants.user2.username" : req.body.recipientName
              },
              created : Date.now(),
              messages : [] // The message _id is pushed in later. 
            }

这是“参与者”位,真让我震惊。 这些数据应该从客户端返回,但是我无法将其放入var conv 在这里创建嵌套对象的正确语法是什么?

任何指导都会很棒! 谢谢大家!

修复! 是的,这只是一个简单的语法错误:这是正确的格式,以防万一其他人到此为止。

  var conv = {
              participants : {
                "user1" : {
                  "id" : req.body.senderId,
                  "username" : req.body.senderName
                },
                "user2" : {
                  "id" : req.body.recipientId,
                  "username" : req.body.recipientName
                }
              },
              created : Date.now(),
              messages : [] // The message _id is pushed in later.
            }

另外,提示:走开,洗衣服。 回到您的身边,事情会变得更加清晰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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