모든 임베디드 문서를 업데이트하고 싶습니다. 내 문서는 다음과 같습니다.여러 중첩/포함 문서 mongodb를 업데이트하는 방법은 무엇입니까?
{
"_id":1,
"chat":[
{ "sender":"bar",
"message":"Hi",
"status":"pending"
},
{ "sender":"bar",
"message":"How are you?",
"status":"pending"
}
}
{
"_id":2,
"chat":[
{ "sender":"foo",
"message":"Hello",
"status":"pending"
},
{ "sender":"foo",
"message":"Are you okay?",
"status":"pending"
},
{ "sender":"someone",
"message":"Where are you?",
"status":"pending"
}
}
시도했지만 동시에 작동하지 않을 수 있습니다. 첫 번째 포함 된 문서를 변경하기 위해 작동합니다. 나는이 문서가 이렇게 될 업데이트되어 원하는 그것뿐만 동시에 1 개 과정에서 변경해야
db.chat.update({"_id":"2", "chat.sender":"foo"},{$set{"chat.$.status":"sent"}},{multi:true})
:
{
"_id":1,
"chat":[
{ "sender":"bar",
"message":"Hi",
"status":"pending"
},
{ "sender":"bar",
"message":"How are you?",
"status":"pending"
}
}
{
"_id":2,
"chat":[
{ "sender":"foo",
"message":"Hello",
"status":"sent"
},
{ "sender":"foo",
"message":"Are you okay?",
"status":"sent"
},
{ "sender":"someone",
"message":"Where are you?",
"status":"pending"
}
}
이 문제를 해결하는 방법을 알고있는 경우에, 저를 도와주세요 여기 내 코드입니다 ...
Omg 그것은 선생님,하지만 어떻게 PHP에서 구현하는거야? db-> chat-> find (array ("_ id"=> "2")) 그런 다음? –
반갑습니다. 죄송하지만 PHP에 관해 당신을 도울 수는 없습니다. mongodb PHP 라이브러리에서 해당 쿼리를 사용하는 방법이 있어야합니다. –
@ Hasan은 다음 조건을 찾아야합니다 : { "_id": 2}, 당신의 ans를 편집하십시오. – radhakrishnan