2017-01-31 2 views
0

의 내가 MongoDB를이 컬렉션이 있다고 가정 해 봅시다 :mongodb 특정 문서 안에있는 배열의 항목을 삭제하는 방법은 무엇입니까?

{ 
    "_id" : ObjectId("5890e5ea619737392c257846"), 
    "email" : "[email protected]", 
    "pass" : "123456", 
    "firstName" : "sdlriugth", 
    "lastName" : "sdfligkjh", 
    "movies" : [ 
     ObjectId("5890e5ec619737392c257847"), 
     ObjectId("5890e5ed619737392c257848"), 
     ObjectId("5890e5ee619737392c257849"), 
     ObjectId("5890e5ee619737392c25784a") 
    ] 
} 
{ 
    "_id" : ObjectId("5890e5f8619737392c25784c"), 
    "email" : "[email protected]", 
    "pass" : "123456", 
    "firstName" : "yjhtgj", 
    "lastName" : "vbnvbng", 
    "movies" : [ 
     ObjectId("5890e5fa619737392c25784d"), 
     ObjectId("5890e5fb619737392c25784e"), 
     ObjectId("5890e5fc619737392c25784f") 
    ] 
} 

2 사용자는 각 사용자가 영화 아이디의 배열을 가지고있다.

이 영화가있는 사용자로부터 특정 영화 ID를 제거하는 쿼리를 수행하려고합니다.

내가 영화 ID를 제거 할 것이다 경우의 말을하자 "5890e5ee619737392c25784a"나는 얻을 것이다 :

{ 
    "_id" : ObjectId("5890e5ea619737392c257846"), 
    "email" : "[email protected]", 
    "pass" : "123456", 
    "firstName" : "sdlriugth", 
    "lastName" : "sdfligkjh", 
    "movies" : [ 
     ObjectId("5890e5ec619737392c257847"), 
     ObjectId("5890e5ed619737392c257848"), 
     ObjectId("5890e5ee619737392c257849"), 
    ] 
} 
{ 
    "_id" : ObjectId("5890e5f8619737392c25784c"), 
    "email" : "[email protected]", 
    "pass" : "123456", 
    "firstName" : "yjhtgj", 
    "lastName" : "vbnvbng", 
    "movies" : [ 
     ObjectId("5890e5fa619737392c25784d"), 
     ObjectId("5890e5fb619737392c25784e"), 
     ObjectId("5890e5fc619737392c25784f") 
    ] 
} 

P.S 내가 어떤 변경 사항이 모든 관련 문서를 만들 수 있습니다. (많은 사용자가 동일한 영화 ID를 가질 수 있음)

+0

이 나는 ​​변경 사항이 모든 관련 문서를하지 특정 사용자에 할 것인지 이야기하는 것을 잊었다 것입니다. – shayp

답변

0

감사합니다. 그래서 귀하의 경우 쿼리가

db.collection.updateOne({"_id": ObjectId("5890e5ea619737392c257846")}, 
{"$pull": {"movies": ObjectId("5890e5ee619737392c25784a")}}) 
관련 문제