2015-02-22 1 views
-2

У меня есть коллекция:

//the json. 
{ 
"ItemsToDelete" : [ 
     { 
      "placeId" : "ChIJIQBpAG2ahYAR_6128GcTUEo", 
      "users" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     }, 
     { 
      "placeId" : "ChIJIQBpAG2ahYAR_6128GcTUEo", 
      "users" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     }, 
     { 
      "placeId" : "ChIJIQBpAG2ahYAR_6128GcTUEo", 
      "users" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     } 
    ] 
} 


{ 
"ItemsToRemove" : [ 
     { 
      "ChIJIQBpAG2ahYAR_6128GcTUEo" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     }, 
     { 
      "ChIJIQBpAG2ahYAR_6128GcTUEo" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     }, 
     { 
      "ChIJIQBpAG2ahYAR_6128GcTUEo" : [ 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15"), 
       ObjectId("547e4650f3fb0a022110af15") 
      ] 
     } 
    ] 
} 

Я тогда запустить этот запрос Монго оболочки натянуть пункт из массива и удаления:

db.users.update({"_id":ObjectId("54e664c4e7c3b4d3b5413e39")},{$pull:{ItemsToDelete : {placeId:"ChIJIQBpAG2ahYAR_6128GcTUE"}}},{ multi: true }) 

массив остается неизменным , Любые мысли, почему это не удается?

Я попытался «ItemsToDelete.placeId», но что ошибки с помощью: ошибки я получаю при выполнении «ItemsToDelete.placeId» => «не может использовать часть (ItemsToDelete из ItemsToDelete.placeId), чтобы пройти через элемент»

ответ

2

Ваш запрос не тянет за какой-либо элемент, потому что вам не хватает o в placeId значение.

> db.users.update(
    {"_id":ObjectId("54e664c4e7c3b4d3b5413e39")}, 
    {$pull:{ItemsToDelete : {placeId:"ChIJIQBpAG2ahYAR_6128GcTUE"}}}, 
                   ^
    { multi: true } 
) 

Должно быть

> db.users.update(
    {"_id":ObjectId("54e664c4e7c3b4d3b5413e39")}, 
    {$pull:{ItemsToDelete : {placeId:"ChIJIQBpAG2ahYAR_6128GcTUEo"}}}, 
    { multi: true } 
) 

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

> db.users.find().pretty() 
{ "_id" : ObjectId("54eac8d51a0c74438c9dea10"), "ItemsToDelete" : [ ] }