PythonがMongoDBを使用する基本操作
5857 ワード
mongodyは、キー値(key=>value)のペアからなるデータ構造をドキュメントとして格納します.MongoDBドキュメントはJSONオブジェクトに似ています.mongodyのdatabase->collections->document->field->index.リレーショナル・データベースのdatabase->table->rows->column->indexに相当する.
一つのdocument情報
1、接続データベース:
2、データを挿入する:
3、クエリーデータ
dbを使用します.database.collecction.find()はコレクション内のすべてのデータを調べることができます
4、条件照会
find(「name」:「zhangsan」)を使用して、zhangsanのすべての名前のbsonデータを調べることができます.sql select*fromに相当
find_の使用one(「name」:「zhangsan」)は、最初の一致するデータを返します.
5、データの更新
「name」:「zhangsan」を「lisiに変更」します.この方法では、最初の「name」が「zhangsan」のデータのみを「lisi」に変更します.
upsertの役割を使用しているデータベースがデータに一致していない場合は、このデータが挿入されます(デフォルトはfalse)、multiはバッチ操作、デフォルトはfalseです.彼の役割はすべての一致情報を更新します.
6、データの削除
name=lisiのすべてのレコードを削除
name=lisiのidに基づいて、対応するデータを削除
7、monggodb中の条件オペレータ
成績が合格した学生を調べる:
タイプ判定により、名前がStringタイプのデータを探し出す:
ここで2はStringタイプ:部分対照
ソートsort().そのうち1は昇順、-1は降順を表す
Limitとskip
IN
OR
all
allとinの違い、allは指定されたすべての条件が存在しなければならないことを示し、inはある指定された条件が存在することを示す.
push/pushAll
pop/pull/pullAll
MongoDBのより多くの操作は、ゆっくり勉強する必要があります.
一つのdocument情報
{
"_id":ObjectId(1234567890),
"age":16,
"name":"zixuezhe",
"email":"[email protected]"
}
1、接続データベース:
from pymongo import MongoClient
class CollectionMongo():
def __init__(self,host,port):
self.host = host
self.port = port
self.db = None
self.my_set = None
self.conn = None
try:
self.conn = MongoClient(self.host,self.port)
except Exception,e:
print e
def mySet(self,database,collection):
self.database = database
self.collection = collection
try:
self.db = self.conn[database]
self.my_set = self.db[collection]
return self.my_set
except Exception,e:
print e
2、データを挿入する:
if __name__ == "__main__":
collectionMongo = CollectionMongo('XXX.XXX.XXX.XXX', 27017)
my_set = collectionMongo.mySet('sun','col')
my_set.insert({'name':'zhangsan','age':18},{'name':'lisi','age':19})
for i in my_set.find():
print i
3、クエリーデータ
dbを使用します.database.collecction.find()はコレクション内のすべてのデータを調べることができます
if __name__ == "__main__":
collectionMongo = CollectionMongo('XXX.XXX.XXX.XXX', 27017)
my_set = collectionMongo.mySet('sun','col')
for i in my_set.find():
print i
4、条件照会
find(「name」:「zhangsan」)を使用して、zhangsanのすべての名前のbsonデータを調べることができます.sql select*fromに相当
database where name='zhangsan'
for i in my_set.find({"name":"zhangsan"}):
print i
find_の使用one(「name」:「zhangsan」)は、最初の一致するデータを返します.
5、データの更新
my_set.update({"name":"zhangsan"},{'$set':{"name":"lisi"}})
for i in my_set.find():
print i
「name」:「zhangsan」を「lisiに変更」します.この方法では、最初の「name」が「zhangsan」のデータのみを「lisi」に変更します.
my_set.update({"name":"zhangsan"},{'$set':{"name":"lisi"}},upsert=True,multi=True)
for i in my_set.find():
print i
upsertの役割を使用しているデータベースがデータに一致していない場合は、このデータが挿入されます(デフォルトはfalse)、multiはバッチ操作、デフォルトはfalseです.彼の役割はすべての一致情報を更新します.
6、データの削除
name=lisiのすべてのレコードを削除
my_set.remove({'name':'lisi'})
name=lisiのidに基づいて、対応するデータを削除
id = my_set.find_one({'name':'lisi'})['_id']
my_set.remove(id)
7、monggodb中の条件オペレータ
成績が合格した学生を調べる:
for i in my_set.find('grade':{"$gte":60})
print i
タイプ判定により、名前がStringタイプのデータを探し出す:
for i in my_set.find('name':{'$type':2})
ここで2はStringタイプ:部分対照
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined 6
Object id 7
Boolean 8
Date 9
Null 10
ソートsort().そのうち1は昇順、-1は降順を表す
for i in my_set.find().sort([("age",1)]):
print(i)
Limitとskip
#limit()
#skip()
# 6
for i in my_set.find().skip(2).limit(6):
print(i)
IN
# age 20、30、35
for i in my_set.find({"age":{"$in":(20,30,35)}}):
print(i)
OR
# age 20 35
for i in my_set.find({"$or":[{"age":20},{"age":35}]}):
print(i)
all
'''
dic = {"name":"lisi","age":18,"li":[1,2,3]}
dic2 = {"name":"zhangsan","age":18,"li":[1,2,3,4,5,6]}
my_set.insert(dic)
my_set.insert(dic2)
'''
for i in my_set.find({'li':{'$all':[1,2,3,4]}}):
print(i)
allとinの違い、allは指定されたすべての条件が存在しなければならないことを示し、inはある指定された条件が存在することを示す.
push/pushAll
my_set.update({'name':"lisi"}, {'$push':{'li':4}})
for i in my_set.find({'name':"lisi"}):
print(i)
# :{'li': [1, 2, 3, 4], '_id': ObjectId('58c50d784fc9d44ad8f2e803'), 'age': 18, 'name': 'lisi'}
my_set.update({'name':"lisi"}, {'$pushAll':{'li':[4,5]}})
for i in my_set.find({'name':"lisi"}):
print(i)
# :{'li': [1, 2, 3, 4, 4, 5], 'name': 'lisi', 'age': 18, '_id': ObjectId('58c50d784fc9d44ad8f2e803')}
pop/pull/pullAll
#pop
# (-1 )
my_set.update({'name':"lisi"}, {'$pop':{'li':1}})
for i in my_set.find({'name':"lisi"}):
print(i)
# :{'_id': ObjectId('58c50d784fc9d44ad8f2e803'), 'age': 18, 'name': 'lisi', 'li': [1, 2, 3, 4, 5]}
#pull ( )
# 3
my_set.update({'name':"lisi"}, {'$pop':{'li':3}})
#pullAll ( )
my_set.update({'name':"lisi"}, {'$pullAll':{'li':[1,2,3]}})
for i in my_set.find({'name':"lisi"}):
print(i)
# :{'name': 'lisi', '_id': ObjectId('58c50d784fc9d44ad8f2e803'), 'li': [4, 5], 'age': 18}
MongoDBのより多くの操作は、ゆっくり勉強する必要があります.