1

ユーザーが投票した投稿の ID を記録しようとしています。そのためのスキーマを次のように作成しています。

var userSchema = new Schema({
    twittername: String,
    twitterID: Number,
    votedPosts: [{ObjectId : {votetype : Number}} ]
  });

ユーザーは完全に作成され、ユーザーが何かに投票するたびに、votedPosts 属性を更新したいので、次のように呼び出します。

User.update({twitterID : req.body.userID} , { $push : {votedPosts : {postID : {votetype: newvotetype }}}} ,function (err, user, raw) {
    if (err){ 
        console.log(err);
    }
    else{
        console.log('user ' + user);
    }

});

残念ながら、結果はスキーマで説明したとおりではありません。次のようになります。

  db.users.find().pretty()
    {
        "__v" : 0,
        "_id" : ObjectId("51bf4ef8dbda2f2e0c000001"),
        "twitterID" : 102016704,
        "twittername" : "gorkemyurt",
        "votedPosts" : [
            {
                "_id" : ObjectId("51bf5e48c3ffefe20c000002")
            }
        ]
    }

マングースがvotedPosts配列に追加する余分な「_id」に混乱しています.なぜObjectId(「51bf5e48c3ffefe20c000002」)がキーと値のペアのキーになれないのですか?

4

1 に答える 1