【发布时间】:2019-05-17 04:49:51
【问题描述】:
我正在尝试删除数组中的第二个玩家。但我尝试的一切都不起作用。任何帮助表示赞赏
这是存储的数据
{
"_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 })
这是架构
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);
【问题讨论】:
-
我刚刚在问题中使用相同的文档尝试了上面给出的解决方案,它工作正常。您的查询没有任何问题。问题可能是其他问题,因此请使用有关架构和代码的更多详细信息更新问题。
-
好的,谢谢。我在上面发布了架构。我认为问题可能是我如何拥有 id:{ ref:"players"} .... 但我不确定
标签: arrays node.js mongodb mongoose