2012-06-18 3 views
0

에서 편집 값 :검색 나는 이런 식으로 뭔가를 보이는 MongoDB를 수집있어 MongoDB를

[ 
    { 
     "title": "Entry 1", 
     "visible": true 
    }, 
    { 
     "title": "Entry 2", 
     "visible": true 
    } 
] 
내가 그 title 항목을 찾으려면

내 쿼리를 (예를 들어, array("title" => "Entry 1"))과 일치, 그 visible 변경 재산.

이것은 매우 단순 해 보이지만 그렇게 할 방법을 찾지 못했습니다. 내가 배열로 원하는 항목을 반환하는 방법을 참조하십시오. 그것은 내가 전체 개체 (이 예제보다 더 많은 속성을 가진)를 가져올 필요가 없어야하고, 작은 것을 하나만 변경 한 다음 전체 개체를 다시 넣어야한다고 생각합니다. 내가 뭘 놓치고 있니?

답변

1

positional operator

db.pos.insert({arr: [{"title": "Entry 1", "visible": true},  
        {"title": "Entry 2", "visible": true}]}) 

db.pos.update({'arr.title': 'Entry 1'}, 
       {$set: {'arr.$.visible': false}}) 

db.pos.find() 
> { "_id" : ObjectId("4fdfb65e9c9cf2c23bbdd669"), "arr" : [  { "title" : "Entry 1", "visible" : false }, { "title" : "Entry 2", "visible" : true } ] } 
+0

감사를 읽어보세요! 나는 그것이 단순해야만한다는 것을 알았다! –