으로 밀어 MongoDB를 나는 내가 다음 쿼리는 위치 상 운영자가 작동하지
db.users.find({
"_id":{"$ne":"385516561596016"},
"playDates":{"$in":["2014-11-26"]},
"matches":{"$elemMatch":{
"userId":"385516561596016",
"dates":{"$nin":["2014-11-26"]}}}})
그것은 위의 문서를 반환에게 '사용자의 수집
{
"_id" : "388179687996974",
"matches" : [
{
"userId" : "1495728740672094",
"choice" : false,
"dates" : [],
"dateId" : null
},
{
"userId" : "385516561596016",
"choice" : true,
"dates" : [],
"dateId" : "2014-11-26_385516561596016_388179687996974"
},
{
"userId" : "253752728167114",
"choice" : false,
"dates" : [],
"dateId" : null
},
{
"userId" : "365296866955687",
"choice" : null,
"dates" : [
"2014-11-26"
],
"dateId" : null
}
],
"playDates" : [
"2014-11-26"
]
}
에서 다음과 같은 문서가있다.
나는 다음과 같이 위치 연산자를 사용하여 문서를 업데이트하기 위해 노력하고있어 :db.users.update({
"_id":{"$ne":"385516561596016"},
"playDates":{"$in":["2014-11-26"]},
"matches":{"$elemMatch":{"userId":"385516561596016",
"dates":{"$nin":["2014-11-26"]}}}},
{"$push":{"matches.$.dates":"2014-11-26"}})
을 대신 userId를 385,516,561,596,016을 위해 경기에 2014년 11월 26일을 가하고, 그것은이 경기에 넣는다 [0].
내가 뭘 잘못하고 있니?
이미 존재합니다. https://jira.mongodb.org/browse/SERVER-14837 – Sammaye
장난감 데이터베이스 작업의 즐거움. 생각할 수있는 잠재적 인 해결 방법이 있습니까? – Jeff