尝试删除数组中的_id。它似乎不起作用

时间:2019-05-16 19:19:16

标签: arrays node.js mongodb mongoose

我正在尝试删除阵列中的第二个播放器。但是我尝试的所有方法都不起作用。感谢您的帮助

这里是存储的数据

{
    "_id" : ObjectId("5cdd9dfe331fa63911455c4f"),
    "name" : "goobers",
    "venue" : ObjectId("5cdc96a4f957961fed9316dd"),
    "league" : ObjectId("5cdc96b5f957961fed9316de"),
    "duespaid" : 1,
    "players" : [
            {
                    "_id" : ObjectId("5cdc96c7f957961fed9316fe"),
                    "captain" : 1
            },
            {
                    "_id" : ObjectId("5cdc96cbf957961fed9316ff")
            }
    ],
    "__v" : 1
}

这是我认为可行的

db.leagues.update({
    _id:ObjectId("5cdd9dfe331fa63911455c4f")
}, { 
   $pull: { 
         "players": {
               "_id": ObjectId("5cdc96cbf957961fed9316ff")
          }
   }
})

WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })

这是SCHEMA

var mongoose = require("mongoose");

//Scheme setup

var teamSchema = new mongoose.Schema({

    name: String,

    venue: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Venue"
        },

    league: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "League"
    },

    players: [{
        id: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Player"
        },

        captain: Number,
        name: String

        }],

    duespaid: Number

});

//var Campground = mongoose.model("League", leagueSchema); 

module.exports = mongoose.model("Team", teamSchema); 

1 个答案:

答案 0 :(得分:0)

我现在解决了这个问题。问题出在我的模式设置中。猫鼬不喜欢我调用对象ID。现在,我无法将其推到正确的位置,并且一切正常。