MongoDB删除数组变量

时间:2016-10-06 07:36:02

标签: mongodb

db.categories.remove(
{"categoryId" : 510001,"name" : "Nevresim Takımları"},{
productTypes:{$elemMatch:{name:"Seri Sonu Ürünler"}}})

我用它来

"_id" : ObjectId("57e6fb9ca71845002b9be169"),
    "_class" : "net.infoowl.hepsiburada.microservice.product.domain.Category",
    "name" : "Nevresim Takımları",
    "categoryId" : 510001,
    "parentCategoryId" : 9010109,
    "productTypes" : [
        {
            "_id" : ObjectId("57e6fa87e0c6de002c209124"),
            "name" : "Seri Sonu Ürünler",
            "requiredHeaders" : [ ],
            "uniqueConstraints" : [ ],
            "fields" : [ ],
            "createdAt" : ISODate("2016-09-24T22:13:27.882Z"),
            "createdBy" : "user-0",
            "modifiedAt" : ISODate("2016-09-24T22:13:27.882Z"),
            "modifiedBy" : "user-0",
            "extend" : DBRef("productTypes", "base")

删除"seri sonu ürünler"

但全部删除了

"categoryId" : 510001,"name" : "Nevresim Takımları"

为什么?

当我找到它时,它在数组中找到了正确的变量但是当删除时,为什么不同?

db.categories.find({"categoryId" : 510001,"name" : "Nevresim Takımları"},{productTypes:{$elemMatch:{name:"Seri Sonu Ürünler"}}}).pretty()
{
    "_id" : ObjectId("57e6fb9ca71845002b9be169"),
    "productTypes" : [
        {
            "_id" : ObjectId("57e6fa87e0c6de002c209124"),
            "name" : "Seri Sonu Ürünler",
            "requiredHeaders" : [ ],
            "uniqueConstraints" : [ ],
            "fields" : [ ],
            "createdAt" : ISODate("2016-09-24T22:13:27.882Z"),
            "createdBy" : "user-0",
            "modifiedAt" : ISODate("2016-09-24T22:13:27.882Z"),
            "modifiedBy" : "user-0",
            "extend" : DBRef("productTypes", "base")
        }
    ]
}

这是删除

db.categories.remove(

{"categoryId" : 510001,"name" : "Nevresim Takımları"},{
productTypes:{$elemMatch:{name:"Seri Sonu Ürünler"}}})

这是为了寻找 d b.categories.find({"categoryId" : 510001,"name" : "Nevresim Takımları"},{productTypes:{$elemMatch:{name:"Seri Sonu Ürünler"}}}).pretty()

1 个答案:

答案 0 :(得分:2)

Java regex Utility用于使用给定查询从集合中删除完整文档。您的查询返回此文档,因此全部删除。 如果要从文档中的数组中删除元素,则需要将removeupdate

一起使用

在你的情况下,你会想这样做:

@Inject
SomeManagedBean bean;