私はCodeigniterとAlex Bilbies MongoDBライブラリを使ってWebアプリケーションを開発しています。 各ユーザーには、電話番号という配列を含む電話という項目が含まれているドキュメントがあります。選択したユーザーのドキュメントからアレイからアイテムを引き出すにはどうすればよいですか?MongoDBは選択された文書から配列から項目を削除します
ありがとうございました!
私はCodeigniterとAlex Bilbies MongoDBライブラリを使ってWebアプリケーションを開発しています。 各ユーザーには、電話番号という配列を含む電話という項目が含まれているドキュメントがあります。選択したユーザーのドキュメントからアレイからアイテムを引き出すにはどうすればよいですか?MongoDBは選択された文書から配列から項目を削除します
ありがとうございました!
配列から特定の配列項目を除去するためにMongoDB $プルを使用:直接アレックスBilbies MongoDBのライブラリを使用して、配列から値を引くしようとしたとき
> db.mycollection.insert({user: "test", items: [1234, 5678, 91011]});
> db.mycollection.find()
{ "_id" : ObjectId("4ec3b9af8d1ae67f1fb2b30a"), "user" : "test", "items" : [ 1234, 5678, 91011 ] }
> db.mycollection.update({user: "test"}, {$pull: {items: 5678}});
> db.mycollection.find()
{ "_id" : ObjectId("4ec3b9af8d1ae67f1fb2b30a"), "items" : [ 1234, 91011 ], "user" : "test" }
ニース。しかし、特定の文書の配列からどのように引き出すことができますか? –
Alex Bilbies MongoDBライブラリを使用して作業する必要があります。 –
よく、修飾子演算子を使用する場合は、ドキュメント全体を指定する必要はなく、基準のみを指定し、変更する必要があるフィールドを指定する必要があります。 PHPの場合、これは次のようになります:$ coll-> update(array( 'username' => 'jamesbond'、array( '$ pull' => array( 'items' => 5678))); – ioseb
はさえ、私が問題に遭遇しました。 この方法は、最初に値を設定解除してから、すべてのNULLを取り出すという方法で動作します。
希望これは
$this->mongo_db->where('items', "5678")->unset_field('items.$')->update('mycollection');
$this->mongo_db->pull('items', NULL)->update('mycollection');
はモンゴは$のサポートは箱から撤退しているのに役立ちます: http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull – ioseb
うん、しかし、特定の配列項目をプルすることはできますか? –