MongoDB

リストの中の一行を消したい

removeは駄目ー。 updateを使い給え。 from pymongo import Connection con = Connection('localhost', 27017) db = con['gazodb'] tbl = db['log'] tbl.update({'no': 95}, {'$pull': {'res':{'no':97}}}) no.95のデータにある、resのなかのno.97のデータの…

GridFSのremoveってかDeleteってか

GridFS(バイナリ、というか絵とか映像とか)コレクションから削除したい、と言う時は 標準のメソッドとしてはremove({※検索文字列})を使うが、pymongo的にはdelete(file_id)なのだそうだ。 まあカラムは少ないし、うかつに消しすぎても困るのだろうという配慮…

クエリーについてドット表記

参考: http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29あまり人の事は考えずに難しいSQLを書くのが好きな私は やはりMongoDBでも小難しく考えたくなる。 しかしDBの性質上小難しく書く事はあまりない、のではないだろうか。…

jsonの変換

jsonは便利だけどオブジェクトについては 文字列に変換しろやこらって怒られる。その対処。 import json from bson.objectid import ObjectId #<-pymongoに含まれる from bson import json_util #<-pymongoに含まれる from datetime import datetime class m…

updateの$pushをつかって入れ子構造のデータを作りたい

あるフィールドにドキュメント丸ごと突っ込んで入れ子構造にしたい時は そのフィールドの値を配列型にしておかなければいけないらしい。例 {'no': 4, 'key':''}というデータに対しては #Pythonのコード。いろいろ省略 tbl.update({'no': 4}, {'$push': {'key…

コードのテスト

いきなりだけど、PyramidでMongodb接続するときはこんな感じ。__init__.py def main(global_config, **settings): #MongoDB Connect conn = Connection('localhost', 27017) config.registry.settings['db_conn'] = conn def add_mongo_db(event): #接続情報…