2011-01-11 4 views
8

में "_id => OBjectID (" id ")" खोजने के लिए "ढूंढें" का उपयोग कैसे करें, मुझे अपने मोंगो में एक प्रकार का "_id" ढूंढना है, मैं इसे मोंगो खोल का उपयोग करके कर सकता हूं, और मैं पर्ल एपीआई का उपयोग कर ऐसा नहीं कर सकता। (मोंगो शेल)पर्ल एपीआई

मैं यह करने के कोशिश कर रहा हूँ:

./mongo 
use my_db 
db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")}) 

यह काम करता है (रिटर्न), लेकिन मैं ऐसा नहीं कर सकते कि पर्ल एपीआई का उपयोग कर,

$mongo->my_db->my_collection(find({_id => "ObjectId(4d2a0fae9e0a3b4b32f70000"})); 

नहीं है! काम करते हैं क्योंकि "ObjectId" एक स्ट्रिंग नहीं है, लेकिन अगर आप ऐसा करेंगे,

./mongo 
use my_db 
db.my_collection.find({_id : "ObjectId(4d2a0fae9e0a3b4b32f70000)"}) 

भी काम नहीं करता, मुझे लगता है कर रहा हूँ पर्ल एपीआई कर रहे हैं^

अब, मुझे पता है कि मैं इसे कैसे करना है:

db.my_collection.find({_id : ObjectId("4d2a0fae9e0a3b4b32f70000")}) 

पर्ल एपीआई का उपयोग कर।

उत्तर

8

कार्यान्वयन बदल लगता है।

$mongo->my_db->my_collection(
    find({ _id => MongoDB::OID->new(value => "4d2a0fae9e0a3b4b32f70000")}) 
); 
1

मैं समाधान नहीं मिला है, तो आप क्या करना है:

$mongo->my_db->my_collection(find({ _id => $mongo->oid("4d2a0fae9e0a3b4b32f70000")})); 
-2

पढ़ने MongoDB :: ट्यूटोरियल

उपयोग MongoDB भार संकुल के सबसे आप MongoDB के साथ बातचीत करने की आवश्यकता होगी में: MongoDB :: कनेक्शन, MongoDB :: डाटाबेस, MongoDB :: संग्रह , और मोंगोडीबी :: कर्सर। विशेष मोंगो डेटा प्रकारों का उपयोग करने के लिए (मोंगोडीबी :: डेटाटाइप देखें), आपको उन्हें अलग से शामिल करना होगा। तो, आमतौर पर, मोंगो उपयोग करने के लिए आपको कम से कम के साथ शुरू करेंगे:

$db->$collection->find_one({ _id => $id }) 
:

use MongoDB; 
use MongoDB::OID; 

तो फिर तुम सिर्फ अपने कोड में यह कर सकते हैं