MongoDBとpymongo入門

4322 ワード

MongoDB
1.概念
SQLとNoSQL(MongoDB)の比較
リレーショナル・データベース
MongoDB
データベース#データベース#
データベース#データベース#
テーブルテーブルテーブル
コレクションコレクション
行Row/Taple
ドキュメントドキュメントドキュメント
列Column
フィールドフィールドフィールド
表Join
埋め込みドキュメントEmbedded Documents
プライマリ・キーPrimary Key
プライマリ・キーPrimary Key(MongoDBで提供されるデフォルトkey_id)
2.インストールおよび起動サービス
archlinux:
# pacman -S mongodb python-pymongo

システムを使用してサービスを開始
# systemctl start mongodb

デフォルトではプロファイル/etc/mongodbが使用されます.conf、デフォルトのデータベースパスdbpathを変更できる内容は次のとおりです.
bind_ip = 127.0.0.1
quiet = true
dbpath = /var/lib/mongodb
logpath = /var/log/mongodb/mongod.log
logappend = true

またはmongodbを直接起動します.
# mongod --dbpath /tmp/dbfile &

3.データベースの作成と削除
mongoがクライアントに入ると、コマンドuseによって新しいデータベースが作成され、そのデータベースが存在する場合、このデータベースに戻ります.
> use DATABASE_NAME

コマンド#コマンド#
db現在選択されているデータベースをチェックする
コマンドshow dbsは、データベースのリストをチェックします.作成したばかりのデータベースはリストに表示されません.データベースを表示するには、少なくとも1つのドキュメントdbを挿入する必要があります.DATABASE_NAME.insert({'a':'abc'})
dropDatabase()データベースの削除
> use DATABASE_NAME
> db.dropDatabase()

4.コレクションの作成と削除
db.createCollection(name, options)
>use DATABASE_NAME
>db.createCollection("COLLECTION_NAME")

コマンドshow collections作成されたコレクションの表示
または、明示的にコレクションを作成する必要はありません.ドキュメントを挿入すると、MongoDBは自動的にコレクションを作成します.
>db.COLLECTION_NAME.insert({"foo" : "bar"})

コマンドdb.COLLECTION_NAME.drop()コレクションの削除
5.文書の添削
>db.COLLECTION_NAME.insert(document)   //   

>db.COLLECTION_NAME.find()             //   
>db.COLLECTION_NAME.find().pretty()    //      

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA) //   
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})           //   

>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)  //   

詳細:
>db.COLLECTION_NAME.find({}, {name: 1, _id: 0}); //      name   field,    _id   
>db.COLLECTION_NAME.find().sort({name: 1, rating: -1}).limit(5) //   name   , rating        ,     5 

>db.COLLECTION_NAME.count({num: {$gt: 50}})   //  ,   
>db.COLLECTION_NAME.find({num: {$gt: 50}}).count()



pymongo
1.入門
          client
>>> from pymongo import MongoClient
>>> client = MongoClient()
        
>>> client = MongoClient('localhost', 27017)
>>> client = MongoClient('mongodb://localhost:27017/')  # mongodb  

       :
>>> db = client.test_database
>>> db = client['test-database']   #     

      :
>>> collection = db.test_collection
>>> collection = db['test-collection']
#                         


pymongo        :
>>> import datetime
>>> post{'author': 'Mike',
 'date': datetime.datetime(2016, 4, 15, 9, 9, 28, 367936),
 'tags': ['mongodb', 'python', 'pymongo'],
 'text': 'my first blog post'}

    :
>>> posts = db.posts
>>> posts.insert_one(post)
>>> db.collection_names()  #      
      :
>>> new_posts = [{"author": "Mike",
...               "text": "Another post!",
...               "tags": ["bulk", "insert"],
...               "date": datetime.datetime(2009, 11, 12, 11, 14)},
...              {"author": "Eliot",
...               "title": "MongoDB is fun",
...               "text": "and pretty easy too!",
...               "date": datetime.datetime(2009, 11, 10, 10, 45)}]
>>> result = posts.insert_many(new_posts)
>>> result.inserted_ids
[ObjectId('...'), ObjectId('...')]


      :
>>> posts.find_one()
>>> posts.find_one({"author": "Mike"})  #     

  :
>>> posts.count()

参照先:
https://wiki.archlinux.org/index.php/MongoDB
http://api.mongodb.org/python/current/
http://wiki.jikexueyuan.com/project/mongodb/mongodb-query-document.html