다음 서버 메소드는 사용자를 찾을 수 없기 때문에 중복 키 오류가 발생합니다. 일반적인 쿼리는 다음과 같습니다 {서비스 : {페이스 북 : {ID : 'XXXX는'}}}서버에서 유성 사용자 찾기
Meteor.methods
getUser: (query, data = {}) ->
user = Meteor.users.findOne(query)
return user if user?
user = _.extend(data, query)
user._id = Meteor.users.insert user
return user
그것은 나의 이해입니다 서버 방법이 왜 사용자를 찾을 수없는 것입니다 컬렉션에있는 모든 문서에 액세스 할 수 삽입이 중복 페이스 북 ID로 인해 실패합니까?
이것은 내 osx 개발 환경에서 완벽하게 작동하지만 내 우분투 서버 (번들)에서는 작동하지 않으며 NODE_ENV = production으로 실행되지 않습니다. 여기
로그 출력 :data: { services: { facebook: { id: 'xxxx' } } } (the query provided to getUser)
data: undefined (the result of findOne)
data: Exception while invoking method 'getUser' MongoError: E11000 duplicate key error index: thunderstruck.users.$services.facebook.id_1 dup key: { : "xxxx" }
data: at Db.wrap (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/db.js:1904:11)
data: at null.<anonymous> (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/collection.js:320:26)
data: at g (events.js:192:14)
data: at EventEmitter.emit (events.js:126:20)
data: at Db._callHandler (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/db.js:1439:25)
data: at Server.connect.connectionPool.on.server._serverState (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/connection/server.js:425:30)
data: at MongoReply.parseBody (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:127:5)
data: at Server.connect.connectionPool.on.server._serverState (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/connection/server.js:384:22)
data: at EventEmitter.emit (events.js:96:17)
data: at _connect (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:136:13)
방금 다음과 같이 쿼리를 형식화하여 작동 시켰습니다. { "services.facebook.id": "xxxx"} 중첩이 너무 심해 보입니다. 노드 관리자를 사용하여 서버에서 다양한 쿼리를 시도해 보았을 때 중첩 된 3 개의 쿼리가 항상 정의되지 않은 값으로 반환된다는 것을 알았습니다. 깊은 중첩이 OSX에서 작동하고 Linux에서 실패하는 이유는 아직 명확하지 않습니다. –