Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象数组上的Mongo$pullAll_Java_Arrays_Mongodb_Mongodb Query - Fatal编程技术网

Java 对象数组上的Mongo$pullAll

Java 对象数组上的Mongo$pullAll,java,arrays,mongodb,mongodb-query,Java,Arrays,Mongodb,Mongodb Query,目前我在mongo中有这样的数据结构: { "_id": "field00048", "colorValues": [ { "stateField": "Open1", "color": "purple" }, { "stateField": "Open2", "color": "blue" } ] } 我使用m

目前我在mongo中有这样的数据结构:

{
    "_id": "field00048",
    "colorValues": [
        {
            "stateField": "Open1",
            "color": "purple"
        },
        {
            "stateField": "Open2",
            "color": "blue"
        }
    ]
}
我使用mongoshell创建一个查询,使用$pullAll通过在stateField字段上匹配来删除colorValues数组中的两个对象。我尝试过这些查询,但没有一个真正删除匹配的记录

db.admin.fields.update({_id: "field00048"}, {$pullAll: {stateField: ["Open1", "Open2"]}});

有什么建议吗


谢谢

解决此问题的查询是:

db.admin.fields.update({_id: "field00048"}, {$pull: {colorValues:{stateField:{$in: ["Open1", "Open2"]}}}}) 

$pullAll
获取要删除的值列表,
$pull
获取过滤器。类似于
db.admin.fields.update({u id:“field00048”},{$pull:{colorValues:{stateField:{$in:[“Open1”,“Open2”]}}}})
;或者
db.admin.fields.update({u id:“field00048”},{$pullAll:{“colorValues.stateField”:[“Open1”,“Open2”]})
我只是尝试了这些查询,但它仍然没有删除的@VeeramPossible replicate
db.admin.fields.update({_id: "field00048"}, {$pullAll: {colorValues: [{stateField:"Open1"}, {stateField:"Open2"}]}});
db.admin.fields.update({_id: "field00048"}, {$pullAll: {colorValues.stateField: ["Open1", "Open2"]}});
db.admin.fields.update({_id: "field00048"}, {$pullAll: {colorValues: stateField:{["Open1", "Open2"]}}});
db.admin.fields.update({_id: "field00048"}, {$pull: {colorValues:{stateField:{$in: ["Open1", "Open2"]}}}})