मैं एक वेब एप्लिकेशन पर काम कर रहा हूं जो PHP से मोंगोडीबी डेटाबेस से कनेक्ट करने का प्रयास कर रहा है। पेज के 90% में सब कुछ ठीक काम करता है लोड करता है, लेकिन में अन्य 10% यह निम्न अपवाद फेंकता है जब मैं एक संग्रह को अद्यतन करने का प्रयास करें:PHP + MongoDB: संदेश के साथ अनकॉच अपवाद 'MongoCursorException' कोई ऐसी फ़ाइल या निर्देशिका नहीं '
Fatal error: Uncaught exception 'MongoCursorException' with message 'No such file or directory' in D:\webDev\webSites\str\dev3\_global_classes\User.php:40
Stack trace:
#0 D:\webDev\webSites\str\dev3\_global_classes\User.php(40):
MongoCollection->update(Array, Array, Array)
#1 D:\webDev\webSites\str\dev3\_init\_init.php(8):
User->__construct(NULL)
#2 D:\webDev\webSites\str\dev3\index.php(3):
include('D:\webDev\webSi...')
#3 {main} thrown in D:\webDev\webSites\str\dev3\_global_classes\User.php on line 40
PHP कोड:
public function __construct($SESSIONID = null) {
User::$_users_collection = Main::$_mongo->selectCollection("users");
...
$query = array('session_id' => session_id());
$expiry = time() + Main::$_lifetime;
$data = array(
'session_id' => session_id(),
'expiry' => (string)$expiry,
'ip' => $_SERVER['REMOTE_ADDR']
);
$options = array(
'upsert' => true,
'safe' => true
);
try {
User::$_users_collection->update($query, array('$set' => $data), $options);
} catch (Exception $e) {
throw $e;
}
...
}
मोंगो संस्करण :
Wed Oct 17 10:53:48 /usr/bin/mongos db version v2.0.7, pdfile version 4.5 starting (--help for usage)
Wed Oct 17 10:53:48 git version: 875033920e8869d284f32119413543fa475227bf
Wed Oct 17 10:53:48 build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41
मेरे मोंगो क्लस्टर केवल एक ठीकरा है, मेरे php संस्करण है: 5.4.4, और मेरे मोंगो ड्राइवर संस्करण है: 1.2.12।
क्या मोंगोडीबी सर्वर लॉग में कुछ भी प्रासंगिक है? –
मोंगो क्लाइंट पीईसीएल संस्करण 1.3.6 पर है। मैं बाद के संस्करण की कोशिश करने का सुझाव दूंगा क्योंकि यह थोड़ी देर के लिए सक्रिय विकास में है। https://github.com/mongodb/mongo-php-driver/tags – methai
क्या आप कोड गूंजने का प्रयास कर सकते हैं? इससे हमें समस्या का विस्तार से विश्लेषण करने में मदद करनी चाहिए। कैच ब्लॉक में कृपया '$ e-> getCode()' का उपयोग करें। –