For Want Of A Better Word

MongoDBとPHP_リンクと個人的ポイントまとめ

      2015/04/18

===============================

リンク集

===============================

MongoDBの概要・操作

これを読んどけば、入門はOKってぐらいのもん

developerリファレンス日本語訳。有難い。

PHPから操作

MongoDB を PHP から操作する
Mongoクラスリファレンス

一応。

フレームワークと使いたいな

Cakeを使ってみようかな

その他

SQL から Mongo への対応表

こいつは便利だぜ

SQL脳に優しいMongoDBクエリー入門

こいつも便利だぜ

===============================

ポイント 注意事項

===============================

PHPで操作する場合は、MongoDBコンソールのオブジェクトは連想配列に置き換えて考えるんだ!

MongoDBのUpdateにだまされるな! SQLのupdateとは動きが違うぞ!
詳細は薄い本の第2章を参照のこと。

updateで複数レコードを更新する。

SQLなら条件に該当したレコードが更新されるけど、MongoDBの場合はデフォルトで最初の1件だけ。 オプションで「{ multi: true }」とする必要がある。

#mongoshell
db.news.update({“no”:”1″},{{“name”:”fz6″}}, { multi: true });

upsertを使う場合はオプションに「{ upsert: true }」だ

アップデート対象のキーが無い場合は、insertしてくれるUpsert。
対応しているが、上記のオプションが必要。

PHPでの$setを使ったupdateがうまくない….

コレクションの一部をかきかえるための$setを下記のように使っても、うまく更新されなかった。

point項目が100になるとイメージしてたけど。だめ。

しようがないので、丸々書き換えて対応

ふー。

コンソールでfindした場合は全件一気に表示されない。itとか入れろって、面倒くせえ。

全件出す場合はこれだ。

db.collection.find().forEach(printjson)

【参考】http://codenote.net/mongodb/1713.html

(追加)検索結果の操作(ソートとか、件数指定とか)

http://d.hatena.ne.jp/sasaplus1/20120624/1340525126

// scoreの降順でソート
db.users.find().sort({score: -1});

// 2番目のドキュメントから3件だけ表示
db.users.find().skip(2).limit(3);

findの結果からidを取得するのがちょっと特殊。

IDでfindする。new MongoIdとかしないといけなひ。。

作る時は配列に配列を追加する方法で可能。マージでは無い。

条件増えてくと、階層増えるからもっとうまいやり方を考えときたい。

日付の扱い

MongoDBで、日付の期間を指定して検索する方法 – DQNEO起業日記
How to return ISO date format in PHP for MongoDB? – Stack Overflow

・Momngo日付オブジェクト-みたいな奴が居て、日付で絞り込みとかするにはその形式にして保存しないとアカン。
で、文字列⇔Mongo日付についてメモ

MongoShellでのやり方

PHPでのやり方。

PHPで全件取得して表示

sortを使うと結構メモリ容量オーバーする。

1データのサイズが大きいのもあるけど、件数多い場合はsort使うなってことかな。。。。
一応インデックスは張ったんだけどなぁ。

 - mongodb, php

  関連記事

php-logo
phpでhtmlからタグ、スクリプトの除去

スクレイピング中に需要が。 simple_html_parserの「innert …

apache-logo
All-In-One-EclipseとXDdebugでPHPをデバッグするメモ

趣旨 なんかデバッグがうまく動かない時があったので、設定を整理する。 参考サイト …

php-logo
SPL(Standard PHP Library)

概要 http://d.hatena.ne.jp/pasela/20081101 …

cakephp_logo
【Cake】【PHP】検索条件の設定(複数条件とかLikeとか)

CakePHPのfindの検索条件の付け方ってなんか苦手だったけどちょとわかった …

php-logo
クラス情報メソッドの実行結果

■get_declared_classes(); [crayon-5849a18 …