मैं PHP पीईसीएल एक्सटेंशन का उपयोग करके मोंगोडीबी के साथ प्रयोग कर रहा हूं, हालांकि मुझे काम करने के लिए एक निश्चित अद्यतन क्वेरी प्राप्त करने में कठिनाई हो रही है। मैंने थोड़ी किस्मत के साथ उत्तर के लिए एसओ पर चारों ओर खोज की है।
$m = new Mongo;
$collection = $m->testdb->testcollection;
$collection->insert(array(
0, 1, 1, 2, 3, 5
));
findOne
और var_dump
रिकॉर्ड इस प्रकार दिखाई देता है का उपयोग करना::
array
'_id' =>
object(MongoId)[6]
public '$id' => string '4f3bde65a1f7a0315b000000' (length=24)
0 => int 0
1 => int 1
2 => int 1
3 => int 2
4 => int 3
5 => int 5
समस्या आता है जब मैं $set
का उपयोग कर अद्यतन करना चाहते
मैं एक बुनियादी संग्रह बनाया है। मैं मानचित्रण पीएचपी के मैनुअल में SQL to Mongo Cheat Sheet के नीचे की ओर से पता चला
यहाँ मैं मूल्य क्षेत्र 0
अपडेट करना चाहते हैं पर अपनी क्वेरी आधारित हूँ 100
$obj = $collection->findOne();
$collection->update(
array('_id' => $obj['_id']),
array('$set' => array(0 => 100))
);
पुन: प्राप्त करने में कठिनाई रिकॉर्ड से पता चलता है कि यह अवशेष अपरिवर्तित।
अगर मैंने कुछ _id
के साथ गलत तथापि निम्नलिखित अद्यतन क्वेरी काम करता है कर रहा था,, एक नया मान के साथ पूरे रिकार्ड की जगह यद्यपि, बस नहीं एक क्षेत्र को अद्यतन करने मैं आश्चर्य था।
$collection->update(
array('_id' => $obj['_id']),
array(0 => 100)
);
वस्तु डंप:
array
'_id' =>
object(MongoId)[7]
public '$id' => string '4f3bde65a1f7a0315b000000' (length=24)
0 => int 100
किसी मैं गलत क्या कर रहा हूँ, और कैसे ठीक $set
उपयोग करने के लिए बाहर बिंदु कृपया कर सकते हैं। मुझे यकीन है कि यह स्पष्ट है और मुझे बस उस पर दूसरी आंखों की जरूरत है।
बहुत धन्यवाद।
काम करता है? –
@yi_H: वह ** ** काम करता है। फ़ील्ड '1' अपडेट किया गया है, यह फ़ील्ड' 0' के लिए क्यों काम नहीं करता है? – Leigh