MongoError:无法将$ pull应用于非数组值ObjectId

时间:2016-12-08 01:55:22

标签: javascript arrays node.js mongodb mongoose

我正在尝试从文档中的数组中删除元素。 Anon集合有一个名为reviews的数组。它应该包含我试图删除一个的objectIds列表。

var strId = "5848ad1432d019f0350de350"
// function makeObjectId(str){
//     return mongoose.Types.ObjectId(str);
// }
var ObjectId = require("mongoose").Types.ObjectId;
// var ObjectIdVersion = new ObjectId(strId);
// var ObjectIdVersion = makeObjectId(strId);

var query = {_id : strId};
var pull = {"$pull" : {reviews : new ObjectId(strId)}};
Review.findOne(query)
    .then(function(doc){
        console.log("reviewDoc", doc)
        // Anon.findOneAndUpdate({reviews : new ObjectId(strId)}, pull, {new : true})
        //     .then(function(doc){
        //         console.log(doc)
        //     })
        //     .catch(function(err){
        //         console.log(err)
        //     });
        Anon.update({reviews : new ObjectId(strId)},
                    {$pull : {reviews : new ObjectId(strId) }},
                    {new : true}
                )
        .then(function(doc){
            console.log("ANON :: ", doc)
        })
        .catch(function(err){
            console.log(err)
        })
    })
    .catch(function(err){
        console.log(err);
    })

当我{$ 1}}没有$ pull部分和Anon.find()部分时,我会获得带有数组中id的Anons文档。所以我在想找文件不是问题。出于某种原因,我无法使用拉力。我认为它会起作用。

编辑:

来自发现:

new :true

编辑::我的架构的一部分,显示评论:

[ { _id: 57ca6df982d3a41814a18213,
    __v: 1,
    pointsRecord: [],
    userType: 'anon',
    transfered: { isTransfer: false },
    images: [],
    defaultImage: 'defaultPreppy.png',
    createdOn: Wed Dec 07 2016 20:38:00 GMT-0500 (Eastern Standard Time),
    repPoints: 0,
    usefulness: [],
    shortId: 'r1WYY4IQl',
    reviews: [ 5848ad1432d019f0350de350 ] },
  { _id: 5848ace932d019f0350de34c,
    momented: 'Dec 7, 2016',
    __v: 3,
    pointsRecord: [ [Object] ],
    userType: 'anon',
    transfered: { isTransfer: false },
    images:
     [ 'shipyourreptiles.com-SJbl67IXl-0',
       'stashtea.com-SJbl67IXl-0' ],
    defaultImage: 'defaultPreppy.png',
    createdOn: Wed Dec 07 2016 19:44:25 GMT-0500 (Eastern Standard Time),
    repPoints: 3,
    usefulness: [],
    shortId: 'SJbl67IXl',
    reviews: [ 5848ad1432d019f0350de350 ] } ]

0 个答案:

没有答案