猫鼬位置操作员错误

时间:2012-01-16 00:25:51

标签: mongodb mongoose schema nosql

我试图在mongoose中运行这样的命令:

Song.update({url: s.url, "playlist.playlist_id": pl._id}, {$set: {"playlist.$.position": 505050}}, function(er, da) {
                                    console.log("song on playlist lets change position");
                                    console.log(er);
                                    console.log(da);
});

然而我收到错误:[TypeError:无法调用未定义的方法'path']

我猜它与mongoose和$运算符有关,因为它可以在mongodb控制台中运行。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我也和mongoose有类似的问题,也许可以编辑你的帖子来查看架构。我通过在我的架构中进行以下修改来修复我的问题:<

var Result = new Schema({

    id                : Number,
    detailResult   : [detailRef], 
    simpleResult   : [{id: ObjectId, unit: String, value: Number, completed: Boolean}]
});

请注意,在工作示例(下方)中,我添加了new mongoose.Schema()

var Result = new Schema({

    id                : Number,
    detailResult   : [detailRef], 
    simpleResult   : [new mongoose.Schema({id: ObjectId, unit: String, value: Number, completed: Boolean})]
});

您可能需要对架构中的播放列表embeddedDoc参数进行此修改。