码迷,mamicode.com
首页 > 编程语言 > 详细

在python中的使用

时间:2018-09-22 17:06:06      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:gate   span   nbsp   排序   dex   函数   role   连接   索引类型   

操作步骤:
  1. 连接数据库,生成数据库连接对象
    conn = pymongo.MongoClient(‘localhost‘,27017)
  2. 选择要操作的数据库,生成数据库对象 (__setitem__)
    db = conn.stu
    db = conn[‘stu‘]
  3. 获取集合对象
    myset = db.class
    myset = db[‘class‘]
  4. 通过集合对象调用mongodb数据库操作函数
    增删改查,聚合,索引。。。。。
  5. 关闭数据库连接
    conn.close()

--------------------------------------------------------------------------------------------------------------

插入文档:
  myset.insert() 插入数据 功能同 mongoshell
  myset.insert_many() 插入多条
  myset.insert_one() 插入一条
  myset.save() 插入数据,通过_id可以修改

----------------------------------------------------------------------------------------------------------------

查找操作:
  myset.find()
    功能 : 对数据库进行查找
    参数 : 同mongoshell find()
    返回值 : 返回游标对象 #返回是一个对象,因此可以进行for循环
  myset.find_one()        用法同mongoshell中 findOne()
    返回一个字典

由于myset.find()返回的是一个对象,因此含有next(),limit(),skip(),count()这几个方法。

但用着几个方法也是有限制的,如果之前用过了for循环的话,就不能在用这几个方法了

---------------------------------------------------------------------------------------------------------------------

修改操作:
update(query,update,upsert = False,multi = False)
update_many()
update_one()

--------------------------------------------------------------------------------------------------------------------

删除操作:
remove(query,multi = True)
  功能: 删除文档
  参数: query 筛选条件

    multi 默认True表示删除所有符合条件的,False只删除一条

----------------------------------------------------------------------------------------------------------------------

 

复合操作
  查找King = 船长,并删除
  print(myset.find_one_and_delete({"King":"船长"}))

 

from pymongo import MongoClient

#创建数据库连接对象
conn = MongoClient("localhost", 27017)

#创建数据库对象
db = conn.stu
#db = conn["stu"]

#创建集合对象
myset = db.class4

#数据操作
#print(dir(myset))    #查看对象方法

#添加

myset.insert({"name":"路飞","Role":"船长"})
myset.insert([{"name":"山治","Role":"厨师"},{"name":"","Role":"船长"}])
myset.insert_many([{"name":"娜美","Role":"掌舵手"},{"name":"大妈","Role":"四皇"}])
myset.insert_one({"name":"香克斯","Role":"四皇"})
myset.save({"_id":1,"name":"黑胡子","Role":"船长"})
myset.save({"_id":1,"name":"白胡子","Role":"船长"})

#查找

cursor = myset.find({"Role":{"$eq":"四皇"}},{"_id":0})
print(cursor)
for i in cursor:
    print(i["name"],"----",i["Role"])

dic = myset.find_one()
print(dic)

#获取下一条数据
print(cursor.next())
print(cursor.next())

#显示第2条数据
for i in cursor.skip(1).limit(1):
    print(i)

#排序

for i in cursor.sort([("name",-1)]):
    print(i)

query={"$or":[{"sex":"w"},{"age":{"$lt":"18"}}]}
cursor = myset.find(query ,{"_id":0})
for i in cursor:
    print(i)

#修改操作
myset.update({"name":"zengsf"},{"$unset":{"sex":""}})
#同时修改多条文档
myset.update({"name":"zengsf"},{"$set":{"age":"21"}},multi = True)
#如果匹配文档不存在则插入
myset.update({"name":"骷髅"},{"$set":{"King":"武士"}},upsert = True)

#删除
myset.remove({"name":"黑胡子"})

#复合操作
#查找King = 船长,并删除
print(myset.find_one_and_delete({"Role":"船长"}))

#关闭连接
conn.close()

索引操作:
  ensure_index() 创建索引
  list_indexes() 查看索引
  drop_index() 删除一个索引
  drop_indexes() 删除所有索引

#创建一个正向索引
index = myset.ensure_index("name")
#创建一个逆向索引
index = myset.ensure_index([("age",-1)])
print(index)

#获取当前集合中的索引
for i in myset.list_indexes():
    print(i)

#删除所有索引
myset.drop_indexes()

#删除单个索引
myset.drop_index("age_-1")

#其它索引类型   
#创建复合索引
myset.ensure_index([("name",1),("age",1)])

#创建唯一索引
myset.ensure_index("name",name = "MyIndex",unique = True)

#创建稀疏索引
myset.ensure_index("age",sparse = True)

 

--------------------------------------------------------------------------------------------------------------------

聚合操作

  aggregate([])
    参数和mongoshell一样
    返回值和find()函数一样也是得到一个游标对象

 

在python中的使用

标签:gate   span   nbsp   排序   dex   函数   role   连接   索引类型   

原文地址:https://www.cnblogs.com/zengsf/p/9690274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!