ここに64bitならmongo.native_longをtrueにすればいい的なことが書かれている・・・
mongo.types
実際にinsertした値をコンソールで確認すると、new MongoInt64でinsertしたときと同じものが入っていた・・・
ここに64bitならmongo.native_longをtrueにすればいい的なことが書かれている・・・
mongo.types
実際にinsertした値をコンソールで確認すると、new MongoInt64でinsertしたときと同じものが入っていた・・・
またしても、私的メモです。
こちらのマニュアル通りこれを使うとbigintが入ります・・・
mongoInt64
■insertの仕方
//接続 $obj_connection = new Mongo(); //db選択 $db = $obj_connection->hoge_db; //collection選択 $collection = $db->hoge_collection; $collection->insert(array("id"=>new MongoInt64(220309509225197578)));
・コンソールでinsertされた値をみてみると以下の様に入っていることがわかる。
“id” : NumberLong(“220309509225197578”)
追記:
phpでの取得の仕方
//接続 $obj_connection = new Mongo(); //db選択 $db = $obj_connection->hoge_db; //collection選択 $collection = $db->hoge_collection; $collection->find(array("id"=>aray('$gt'=>new MongoInt64(220309509225197578))));
とりあえず、↓こんなのを見つけたので後で実験してみる。
セッションのアップロード状況
コレができるなら、もう少し面白そうなuploaderが作れるのでは?とか思ったりします。
追記:
php5.4.0以降から使えるのか・・・・
ちょっとめんどうなので、またの機会だな・・orz
完全に自分用メモです。
mongoDBで配列内の値をキーにどうやって絞り込むか解らなかったので、調べました。
※実際に値を作ってクエリー投げてみて確認しました。
基本的にはここにすべて書かれています。
高度なクエリー-配列内の値
自分が適当に検証したのは・・
[user@servername ~]$ mongo test_db > db.test_collection.save({a:1}); > db.test_collection.save({a:2}); > db.test_collection.save({a:3}); > db.test_collection.save({a:4}); > db.test_collection.save({a:5}); > db.test_collection.save({a:6}); > db.test_collection.save({a:7,b:[{b1:"b1_1",b2:"b1_2"},{b1:"b2_1",b2:"b2_2"}]}); > db.test_collection.save({a:8,b:[{b1:"b1_2",b2:"b1_3"},{b1:"b2_2",b2:"b2_3"}]}); > db.test_colection.find({b:{$elemMatch:{b1:"b1_1"}}}); { "_id" : ObjectId("4febdcb92cd09b7bd6abce80"), "a" : 7, "b" : [ { "b1" : "b1_1", "b2" : "b1_2" }, { "b1" : "b2_1", "b2" : "b2_2" } ] } >
これで見事に取得できている。。
db.test_colection.find({b:{$elemMatch:{b1:”b1_1″}}});
(結局$elemMatchを使えばよいということらしい。)
これでやっと、一つわからない部分が解決した。。
長かったなぁ・・・