Herhalde burada basit bir şey eksik ama bana iç içe değerleri bir grup bir maç güncelleme sağlayacak bir sorgu oluşturmak için bir yol bulmak gibi olamaz.
Ben (şu anda MySQL kullanır) üzerinde çalıştığım bir blog uygulaması için böyle bir belge var:
array (
'_id' => new MongoId("4bc8dcee8ba936a8101a0000"),
'created' => '20100418-201312 +0000',
'post-title' => 'Some Post Title',
'post-body' => 'Blah Blah Blah Blah.',
'post-blog-name' => 'default',
'post-comments' =>
array (
0 =>
array (
'comment-title' => 'Test1',
'comment-body' => 'asdf1',
'created' => '20100418-214512 +0000',
'owner' => 'User1',
),
1 =>
array (
'comment-title' => 'Test2',
'comment-body' => 'asdf2',
'created' => '20100418-214512 +0000',
'owner' => 'User2',
),
),
'owner' => 'zach',
'updated' => '20100418-201312 +0000',
)
Ben bir maç için 'comment-title' aramak ve daha sonra gerektiği gibi beni silme / veri / değiştirmek güncellemek için izin verebilir bir sorgu oluşturmak için muktedir istiyorum.
Açıkçası ben anahtar değerini içeren bir sorgu kullanarak güncelleme yapabilirsiniz. Böyle bir şey çalışır:
$collection->update(
array("post-comments.0.comment-title" => $_POST['comment-title']),
array('$set' => array('entries.0' => array('comment-title' => $_POST['comment-title'], 'comment-body' => $_POST['comment-body'], 'owner' => $_SESSION['username'], 'updated' => gmdate('Ymd\-His O')))));
Ama ben bana anahtarını bırakın ve hala bir değer (bu örnekte 'yorum-title') dayalı iç içe diziler birini maç mümkün olmasını sağlayacak bir şey eksik bekliyoruz.
Her neyse, üzgünüm, bu muhtemelen en iyi örnek değildir ve muhtemelen will Onları (comment #) tanımlamak için yorumlarda tuşlarını kullanarak sonuna kadar ama yuvalama ve oldukça karmaşık nesneleri oluşturmak beri birkaç gibi görünüyor Ben sadece birisi ben eksik olabilir ne olduğunu işaret edebilir umuyorum güçlü noktaları Mongodbs.
Belirli bir kullanıcı tarafından tüm yorumları kaldırmak ya da güncellemek için bir sorgu daha iyi bir örnek olabilir (bir kullanıcı blog yazarı sadece kara listeye söylüyorlar). Ben tüm belgeyi çekerek ve ardından PHP kullanarak iç içe diziler yineleme bu kısa nasıl yapardım emin değilim.