2012-05-25 2 views
1

$addToSet은 배열에만 추가하는 것처럼 보이며 해시에 해시를 추가 할 수 있습니까?

{ 
    "a"=>"1", 
    "b"=>"2", 
    "c"=>{"d"=>"3"} 
} 

{ 
    "a"=>"1", 
    "b"=>"2", 
    "c"=>{"d"=>"3","e"=>"4"} 
} 

에 그리고 루비는 현 것이다. 하지만 나는이 문제를 해결하는 데 도움이 될만한 무엇이든지 괜찮습니다.

답변

3

예, $addToSet은 배열에서 사용하기위한 것입니다. 당신은

db.collection.update(query, {$set: {'c.e': '4'}}); 
1

당신은 $addToSet 필요하지 않습니다, 해시 (즉, BSON 객체)에만 주어진 키 중 하나를 가질 수 있기 때문에 $set 및 점 표기법을 필요로 - 이미 키 (안 값에 대한 설정 의미를 가지고, 하나).

BSON 개체 내의 하위 개체를 업데이트하려면 Sergio에서 제안하는대로 $set을 사용해야합니다.