निम्न सर्वर विधि डुप्लिकेट कुंजी त्रुटियों को फेंक रही है क्योंकि उपयोगकर्ता नहीं मिल रहे हैं। एक ठेठ क्वेरी है: {सेवाओं: {फेसबुक: {आईडी: '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
यह मेरी समझ है कि सर्वर तरीकों संग्रह में सभी दस्तावेजों तो क्यों उपयोगकर्ता पाया नहीं किया जाएगा करने के लिए उपयोग कर सकते है लेकिन डुप्लिकेट फेसबुक आईडी के कारण डालने में असफल रहा?
यह मेरे ओएसएक्स देव पर्यावरण पर पूरी तरह से काम करता है लेकिन मेरे यूबंटू सर्वर (बंडल) पर विफल रहता है और NODE_ENV = उत्पादन के साथ चल रहा है।
यहाँ लॉग उत्पादन होता है:
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 गहरे घोंसले वाले प्रश्न हमेशा अनिर्धारित लौटे। अभी भी अस्पष्ट क्यों है कि ओएसएक्स पर गहरा घोंसला क्यों काम करता है और लिनक्स पर विफल रहता है। –