【发布时间】:2013-06-17 19:13:26
【问题描述】:
我正在尝试记录用户投票的帖子的 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")
}
]
}
我对 mongoose 在 votedPosts 数组中添加的额外“_id”感到困惑。为什么 ObjectId("51bf5e48c3ffefe20c000002") 不能成为键值对的键?
【问题讨论】:
标签: javascript node.js mongodb mongoose