【问题标题】:Mongoose positional operator errorsMongoose 位置操作员错误
【发布时间】:2012-02-11 01:49:15
【问题描述】:

我正在尝试在 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: Cannot call method 'path' of undefined]

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

有什么想法吗?

【问题讨论】:

    标签: mongodb mongoose schema nosql


    【解决方案1】:

    我也对猫鼬有类似的问题,也许编辑您的帖子以查看架构。我通过在我的架构中进行以下修改来解决我的问题:

    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 参数进行此修改。

    【讨论】:

    • 一年半前确实如此。从那以后,猫鼬可能已经改变了。
    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 2015-04-13
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2011-10-29
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多