MongoDB - $ pull不在Number数组上工作

时间:2017-06-26 22:52:11

标签: mongodb

我有一个类似下面的JSON文档。我想从数组中删除匹配元素。

{ 
    "_id" : NumberInt(1), 
    "fruits" : [
        "pears", 
        "bananas"
    ], 
    "vegetables" : [
        "carrots", 
        "celery", 
        "squash", 
        "carrots"
    ], 
    "ids" : [
        NumberLong(2825459592), 
        NumberLong(328257222163), 
        NumberLong(825544354), 
        NumberLong(3282580412308), 
        NumberLong(28254518083), 
        NumberLong(32825684682), 
        NumberLong(3282574078116), 
        NumberLong(32825709226), 
        NumberLong(328255745773)
    ]
}

从String数组中,以下更新有效。

db.test.update(
    {},
    { $pull: { fruits: { $in: [ "pears" ] }} },
    { multi: true }
   )

从Number数组,以下更新不起作用。没有错误,也没有删除。

db.test.update(
    {},
    { $pull: { ids: { $in: [ 28254518083 ] }} },
    { multi: true }
)

我使用MongoChef的IntelliShell来执行上述命令。

1 个答案:

答案 0 :(得分:0)

这是一个已知问题,已在Mongo 3.2.10中修复。我可以在3.2.9上重现该问题,但不能在3.2.14上重现。请参阅here