2016-10-08 4 views
0

Я уверен, что это простое исправление, но я вытягиваю свои волосы, пытаясь получить синтаксис правильно для вложенного объекта. Я пытаюсь использовать его для создания документа MongoDB.Создание документа MongoDB из вложенного объекта

Mongo documents хранит разговоры между двумя пользователями. Каждое сообщение в разговоре хранится в отдельных документах MongoDB, а документ разговора ссылается на каждое сообщение, которое принадлежит ему.

Вот разговор Schema (который я думаю, все в порядке)

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. Какой правильный синтаксис для создания вложенного объекта, который мне нужен?

Любое руководство было бы замечательным! Спасибо людям!

ответ

0

Исправлено! Да, это была просто синтаксическая ошибка: вот правильная форма на случай, если кто-то еще окажется здесь.

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. 
      } 

Кроме того, про совет: идите и протрите. Когда вы вернетесь к ним, все будет намного яснее.

Смежные вопросы