一 、命令行模式

mongo       #  进入mongodb命令行模式
show dbs
use taobao # 进入该数据库,如不存在则创建之
show tables # 条件操作符
(>) 大于 - $gt # greater than
(<) 小于 - $lt # less than
(>=) 大于等于 - $gte # e equal
(<= ) 小于等于 - $lte
# 查询
db.product.find().pretty().limit().skip().sort({'price':}) # pretty()以易读的方式,limit()限制个数,skip()跳过前12个记录查找,sort()排序,1为升序,-1为降序
db.product.findOne() # 查找一条记录,此时不能带pretty()
db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty() # and
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty() # or
db.col.find({"likes": {$gt:}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty() # and 与 or一起用 # 插入
db.person.insert({'name':'老王'}) 插入数据,如果表person不存在,则会自动创建它再插入。
db.person.drop() # 删除表,如果数据库中只有这一张表,那么数据库也会删除。
# 更新
db.person.update({'name':'kris'},{$set:{'name':'chau'}})
db.person.update({'contry':'china'},{$set:{'class':'five','name':'Low'}},{upsert:true})
db.collection.update(
<query>, # 查找条件
<update>, # 更新内容
{ # 此括号内可选
upsert: <boolean>, # 如果更新内容在记录中不存在,是否插入,默认False
multi: <boolean>, # 默认false,只更新找到的第一条记录,否则更新所有找到的记录
writeConcern: <document> # error 级别
}
)
# 删除
use datatry
db.dropDatabase() # 进入后再执行可删除数据库。 db.person.remove({'name':'chau'})
db.collection.remove(
<query>, # 条件
{
justOne: <boolean>, # 如果为true或1,则只删除第一条
writeConcern: <document> # 抛出异常级别
}
)
# 聚合管道
db.product.aggregate(
[
{$match:{m_id:,mark_time:{$gt:new Date(,,)}}},
{$group: {
_id: {$dayOfMonth:'$mark_time'},
pv: {$sum: }
}
},
{$sort: {"_id": }}
])

二、Python用法

import pymongo
# 连接数据库
client = pymongo.MongoClient('localhost',27017)
db = client['taobao']
# 查找
datas = db['product'].find_one()
datas = db['product'].find({'name':'kris'}).skip(2).limit(n)
# 插入
db['person'].insert({'hello':'you are beautiful'}) # insert不用遍历,效率高
person.insert_many(new_posts) # 插入多条
db['person'].save({'hello':'you are beautiful'}) # save需要遍历列表,一个个插入
# 更新
# update,$set:更新操作,multi=True:是否对查询到的全部数据进行操作,upsert=True:如果找不到查询的结果是否插入一条数据
db.user.update_one({"age":"2"},{"$set":{"name":"qian","age":2}})
db.user.update({"name":"sun"},{"$set":{"name":"qian"}},upsert=True)
# *update_one也是只能对一条数据进行操作,$set是update操作的$操作符,也可以用$inc或$push,前两个操作速度差不多,$push操作速度较慢。
person.update({'name':'kris'}, {'$set':{'class':4}})
# 删除
person.remove({'$or':[{'author':'Mike'},{'author':'Eliot'}]})

或者写成类方法调用

class MyMongoDB(object):
def __init__(self):
try:
self.conn = pymongo.MongoClient(settings["ip"], settings["port"])
except Exception as e:
print(e)
self.db = self.conn[settings["db_name"]]
self.table = self.db[settings["table_name"]] def insert(self,dic):
print("insert...")
self.table.insert(dic) def update(self,dic,newdic):
print("update...")
self.table.update(dic,newdic) def delete(self,dic):
print("delete...")
self.table.remove(dic) def dbfind(self,*dic):
print("find...")
data = self.table.find(*dic)
return data

MongoDB数据库及其Python用法的更多相关文章

  1. 第一篇:一天学会MongoDB数据库之Python操作

    本文仅仅学习使用,转自:https://www.cnblogs.com/suoning/p/6759367.html#3682005 里面新增了如果用用Python代码进行增删改查 什么是MongoD ...

  2. mongodb数据库操作 python+命令行

      一.python操作 from bson.objectid import ObjectId import pymongo client1 = pymongo.MongoClient(host=) ...

  3. 8.3 操作MongoDB数据库

    一项权威调查显示,在大数据时代软件开发人员必备的十项技能中MongoDB数据库名列第二,仅次于HTML5.MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(Not Only SQL ...

  4. Python 操作 mongodb 数据库

    原文地址:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于 是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样 ...

  5. Python全栈 MongoDB 数据库(聚合、二进制、GridFS、pymongo模块)

    断网了2天  今天补上     聚合操作: 对文档的信息进行整理统计的操作 返回:统计后的文档集合 db.collection.aggregate() 功能:聚合函数,完成聚合操作 参数:聚合条件,配 ...

  6. Python全栈 MongoDB 数据库(概念、安装、创建数据)

    什么是关系型数据库?           是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,             同时也是一个被组织成一组拥有正式描述性的表格( ...

  7. Python Json分别存入Mysql、MongoDB数据库,使用Xlwings库转成Excel表格

    将电影数据 data.json 数据通过xlwings库转换成excel表格,存入mysql,mongodb数据库中.python基础语法.xlwings库.mysql库.pymongo库.mongo ...

  8. python操作mongodb数据库

    一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 conn = pymongo.Connection ...

  9. python 操作mongodb数据库模糊查询

    # -*- coding: utf-8 -*-import pymongoimport refrom pymongo import MongoClient #创建连接#10.20.66.106clie ...

随机推荐

  1. Window vista 以上制作自定义证书并为端口配置ssl

    此处的关键在于证书需要分两步,不然在配置ssl时总会有错误.也许makecert命令也会有些玄机,但是管他呢,请按以下步骤和命令配置,几分钟就可成功: 证书制作: 1,  在开始/所有程序(或其他地方 ...

  2. URAL 1996 Cipher Message 3 (FFT + KMP)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意 :给出两个串A , B,每个串是若干个byt ...

  3. [label][JavaScript]读nowmagic - js词法作用域、调用对象与闭包

     原文链接:                 http://www.nowamagic.net/librarys/veda/detail/1305 作用域(scope) JavaScript 中的函数 ...

  4. Mac提示App已损坏 你应该将它移到废纸篓的解决方案

    现象 "Elmedia Player.app"已损坏,打不开. 您应该将它移到废纸篓. 原因 很多朋友们在安装软件时Mac OS系统出现提示"XXXApp 已损坏&quo ...

  5. 介绍 ASP.NET Identity - ASP.NET 应用程序的成员身份认证系统

    ASP.NET Identity 是构建 ASP.NET web 应用程序的一种新的身份认证系统.ASP.NET Identity 可以让您的应用程序拥有登录功能,并可以轻松地自定义登录用户的相关数据 ...

  6. 使用Team Explorer Everywhere (TEE) 2015 SDK获取团队项目的签入策略

    TFS的代码签入策略与IDE工具紧密相关,例如Visual Studio中设置的签入策略,只会影响Visual Studio的团队资源管理器:如果需要在Eclipse的TEE中启用签入策略,你还需要在 ...

  7. TSQL--验证身份证是否有效

    /****** Object: UserDefinedFunction [dbo].[udf_IsvalidIDCard] Script Date: 02/27/2014 16:03:20 ***** ...

  8. vim 命令全

    1 简介 vim是文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.下面讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用 ...

  9. leetcode 罗马数字转整数

    罗马数字包含以下七种字符:I,V,X,L,C,D 和M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II ,即为两个并列的 1.1 ...

  10. 关于mysql中[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails

    mysql> SET FOREIGN_KEY_CHECKS = 0; Query OK, 0 rows affected (0.02 sec)   mysql> delete from r ...