2016-10-08 18 views
0

これは単純な修正だと確信していますが、ネストされたオブジェクトの正しい構文を取得しようとしています。私はそれを使ってMongoDB文書を作成しようとしています。ネストされたオブジェクトからMongoDBドキュメントを作成する

Mongoドキュメントは、2人のユーザー間で会話を保存します。会話内の各メッセージは別々のMongoDB文書に格納され、会話文書はそれに属する各メッセージを参照します。ここで

は(私はOKだと思う)会話スキーマ

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

また、プロのヒント:洗い流してください。あなたがそれらに戻ってきたら、事はもっとはっきりします。

関連する問題