1

在遇到以下问题之前,我以为我对 mongodb 已经很熟悉了。我有以下格式的文档集合:

{
    "_id" : ObjectId("4f876104d976649cbb1f6cf2"),
    "course_list" : [
        {
            "course_id" : "AL101",
            "Grade" : "A"
        },
        {
            "course_id" : "PS101",
            "Grade" : "B"
        },
        {
            "course_id" : "EL101",
            "Grade" : "B"
        }
    ],
    "user_name" : "jim"
}

我想从数组“course_list”中删除所有子文档,其中“等级”不等于“A”。

我尝试了一堆不同的查询,但没有任何效果。但是后来,我认为以下方法肯定会起作用,但它也没有:

db.courses.update({'user_name' : 'jim'}, {$pull : {'course_list' : {'Grade' : {$ne : 'A'}}}})

运行上述命令时,我得到以下数组:

Cannot apply $pull/$pullAll modifier to non-array

谁能指出我正确的方向,好吗?

4

1 回答 1

0

谢谢你的评论。我的查询确实是正确的。正如您正确指出的那样,该错误是因为 course_list 不是数组的文档。

于 2013-02-25T20:31:09.047 回答