Aşağıdaki sunucu yöntemi, kullanıcılar bulunamadığından yinelenen anahtar hataları atıyor. Tipik bir sorgu şöyledir: {hizmetleri: {facebook: {id: 'XXXX'}}}Sunucuda bir meteor kullanıcısı bulma
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
Benim anlayış sunucu yöntemleri öyleyse neden kullanıcı bulundu olmaz koleksiyonlarında tüm belgelere erişimi olduğundan ancak yinelenen facebook kimliği nedeniyle insert başarısız mı?
Bu, osx dev ortamımda mükemmel çalışır ancak ubuntu sunucumda (birlikte) çalışır ve NODE_ENV = üretimiyle çalışır. İşte
ölçüm değeridir: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)
Sorunu şu şekilde biçimlendirerek çalışıyorum: {"services.facebook.id": "xxxx"} Yuvalama çok derinmiş gibi görünüyor. Düğüm denetçisi kullanarak sunucuda çeşitli sorgular denedim ve 3 derin iç içe geçmiş sorguların her zaman yeniden tanımlanmadığını buldum. Derin yuvalamanın OSX'de neden işlediğine ve Linux'ta başarısızlığa neden olduğu hala net değil. –