Мои MongoDB данных, глядя, как показано ниже: -как обновить вложенная Arrayof объектов в MongoDB используя Casbah
{
"_id": 1,
"categories":[
{
"categoryName": "Automobiles",
"categoryId": 1,
"catDisplayName": "language1",
"subCategories": [
{
"subCategoryName": "cars",
"subCategoryId": 1,
"subCatDisplayName": "language2"
},
{
"subCategoryName": "bykes",
"subCategoryId": 2,
"subCatDisplayName": "language3"
}
]
},
{
"categoryName": "Electronics",
"categoryId": 2,
"catDisplayName": "somelanguage1",
"subCategories": [
{
"subCategoryName": "Mobiles",
"subCategoryId": 1,
"subCatDisplayName": "somelanguage2"
},
{
"subCategoryName": "cameras",
"subCategoryId": 2,
"subCatDisplayName": "somelanguage3"
}
]
}
]
}
Мы пытаемся два случая с MongoDB Крепости следующие случаи: -
если catagory существует, а подкатегория не существует, обновите подкатегорию в подкатегориях Array
Если catagory не существует, а subCategory не существует, обновите категорию и подкатегория в категории и подкатегории массиве Соответственно
Мой случай 1 код выглядит как это он работает нормально
val builderObj = MongoDBObject.newBuilder
builderObj += "subCategoryName" -> "cycles"
builderObj += "subCategoryId" -> 3
builderObj += "subCategoryName" -> "language4"
builderObj.result()
val query = MongoDBObject("categories.categoryName" -> "Automobiles")
val updatingdata = $addToSet("categories.$.subCategories" -> builderObj.result())
collection.update(query,updatingdata,true,true)
Но как писать для случая 2 Мы пытаемся, как показано ниже
val builderObj1 = MongoDBObject.newBuilder
builderObj1 += "categoryName"-> "Entertainment"
builderObj1 += "categoryId"-> 3
builderObj1 += "catDisplayName"-> "somelanguage4"
val builderObj = MongoDBObject.newBuilder
builderObj += "subCategoryName" -> "Tickets"
builderObj += "subCatDisplayName"-> "language1"
builderObj += "subCategoryId" -> 1
builderObj.result()
val query = MongoDBObject("categories.$.categoryName" -> "Entertainment") //Entertainment Category doesn't exist in my data
val updatingdata = ? // How To Update the Cateroy and SubCategory at a time
collection.update()
Пожалуйста, дайте мне Предложения, которые я нахожу здесь
С наилучшими пожеланиями GSY
его работа Спасибо ... Конг – sagar
Привет ..... Конг приведенный выше код работает нормально Но мы хотим удалить подкатегорию (например: -и хотите удалить мобильные телефоны из mydata). Категория электроники Мы пытаемся как ниже код: - val removeData = $ pull (MongoDBObject ("categories" -> MongoDBObject ("categoryName" -> "Entertainment"))) Этот код предназначен для удаления конкретной категории Но как удалить ONE или БОЛЬШЕ подкатегорий из определенной категории. – sagar
Я не уверен, что полностью понимаю, что вы хотите сделать. Возможно, вы могли бы задать отдельный вопрос и немного расширить свое отношение к тому, что вы хотите сделать, и тому, что вы пробовали до сих пор. – kong