आपने एक सामान्य पूर्णांक (MongoInt32) का उपयोग _id
. के रूप में किया है खेत। और MongoInt32 MongoID के समान नहीं है। वे दो अलग-अलग वर्ग हैं। माना जाता है कि आप इसे इसके साथ हटा देंगे:
$collection->remove( array( '_id' => new MongoInt32(1) ) );
अतिरिक्त जानकारी:
MongoId का उपयोग _id
. के मान के रूप में किया जाता है फ़ील्ड यदि आप नहीं स्वयं एक मान सेट करें, जैसे कि:
$collection->insert( array( 'cust_id' => 'abc124' ) );
यदि आप इस दस्तावेज़ को पुनः प्राप्त करते हैं, और var_dump() जो आप देखेंगे:
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "51ee74e944670a09028d4fc9"
}
'cust_id' =>
string(6) "abc124"
}
डॉक्स में नोट का मतलब है कि अब आप उस दस्तावेज़ को इसके साथ नहीं हटा सकते:
$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );
लेकिन इसके बजाय आपको इसका उपयोग करना होगा:
$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );
अंतिम बिंदु के रूप में मैं यह बताना चाहता हूं कि आपको वास्तव में new MongoInt32(1)
का उपयोग करने की आवश्यकता नहीं है सबसे पहले, आप बस इसका उपयोग कर सकते हैं:
$document = array (
'_id' => 1,
'cust_id' => 'abc124'
);
आपको केवल MongoInt32/MongoInt64 की आवश्यकता है यदि आप 32-बिट प्लेटफॉर्म (या विंडोज) पर हैं और आपको बड़ी संख्या से निपटने की आवश्यकता है।