MongoDB简单使用demo

标签: MongoDB MongoDB连接 python操作mongodb Python
55人阅读 评论(0) 收藏 举报
分类:
# -*- coding:utf-8 -*-
from pymongo import MongoClient
settings = {
    'ip': '127.0.0.1',  # ip地址
     'port': 27017,  # 端口, mongodb默认端口27017
    'db_name': 'test',  # 数据库名字
     'set_name': 'test_set'  # 集合(相当于mysql的表)名字
}


# 定义mongodb的通用接口
class MyMongoDB(object):
    # 初始化函数
    def __init__(self):
        try:
            self.conn = MongoClient(
                settings['ip'], settings['port']
            )
        except Exception as e:
            print e
        self.db = self.conn[settings['db_name']]
        self.my_set = self.db[settings['set_name']]

    # 插入数据函数定义
    def insert1(self, dic):
        print 'insert...'
        self.my_set.insert(dic)

    # 更新数据函数定义
    def update(self, olddic, newdic):
        print 'update...'
        self.my_set.update(olddic, newdic)

    # 删除数据函数定义
    def delete(self, dic):
        print 'delete...'
        self.my_set.remove(dic)

    # 查询数据函数定义
    def dbfind(self, dic):
        print 'find...'
        data = self.my_set.find(dic)
        for res in data:
            print 'name==%s, age==%s' % (res['name'], res['age'])

def main():
    dic = {'name': 'zhangsan', 'age': 22}
    mongo = MyMongoDB()

    # 插入数据
     mongo.insert1(dic)
    mongo.dbfind({'name': 'zhangsan'})  # 查看数据

     # 修改数据
     mongo.update({'name': 'zhangsan'}, {'$set': {'age': 25}})
    mongo.dbfind({'name': 'zhangsan'})  # 查看数据

     # 删除数据
     mongo.delete({'name': 'zhangsan'})
    mongo.dbfind({'name': 'zhangsan'})

if __name__ == '__main__':
    main()
# 条件操作符
# 查询集合中age大于25的记录
# for i in my_set.find({"age": {"$gt": 25}}):
#     print i

# 判断类型
# for i in my_set.find({"name": {'$type': 3}}):
#     print i

# 指定字段排序
# for i in my_set.find().sort([('age', 1)]):
#     print i

# 查询指定条数limit, 跳过指定条数skip
# 以下表示跳过两条后查询出两条信息
# for i in my_set.find().skip(2).limit(2):
#     print i

# in操作查询(包含查询)
# for i in my_set.find({'age': {'$in': (18, 26)}}):
#     print i

# or操作查询(或查询)
# for i in my_set.find({'$or': [{'age': 23}, {'age': 26}]}):
#     print i

# all操作查询(查找满足全部条件的数据)
# 先插入数据
# dic = {'name': 'lisi', 'age': 16, '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

# push插入
# my_set.update({'name': 'lisi'}, {'$push': {'li': 4}})
# for i in my_set.find({'name': 'lisi'}):
#     print i

# pushall插入
# my_set.update({'name': 'lisi'}, {'$pushAll': {'li': [4, 5]}})
# for i in my_set.find({'name': 'lisi'}):
#     print i

# pop移除最后一个元素
# my_set.update({'name': 'lisi'}, {'$pop': {'li': 1}})
# for i in my_set.find({'name': 'lisi'}):
#     print i

# pull按值移除
# my_set.update({'name': 'lisi'}, {'$pull': {'li': [4, 5]}})
# for i in my_set.find({'name': 'lisi'}):
#     print i

# pullAll移除全部符合条件的
# my_set.update({'name': 'lisi'}, {'$pullAll': {'li': [4, 4]}})
# for i in my_set.find({'name': 'lisi'}):
#     print i

# 多级目录元素操作
# 先插入一条数据
# dic = {
#     'name': 'zhangsan',
#     'age': 18,
#     'contact': {
#         'email': '123456789@163.com',
#         'iphone': '110112114119'
#     }
# }
# my_set.insert(dic)

# 多级目录用.连接
# for i in my_set.find({'contact.iphone': '110112114119'}):
#     print i
#
# print my_set.find_one({'contact.iphone': '110112114119'})
#
# res = my_set.find_one({'contact.iphone': '110112114119'})
# print res['contact']['iphone']  # python方式取值

# 对数据进行索引操作
# 插入数据
# dic = {"name": "lisi",
#        "age": 18,
#        "contact": [{
#            "email": "111111@qq.com",
#            "iphone": "111"},
#            {
#            "email": "222222@qq.com",
#            "iphone": "222"
#            }]
#        }
# my_set.insert(dic)
# 通过索引查找数据
res = my_set.find_one({'contact.1.iphone': '222'})
print res
print res['contact'][1]['email']
# 修改
result = my_set.update(
    {'contact.1.iphone': '222'},
    {'$set': {'contact.1.email': '222222@qq.com'}}
)

注意:以上内容是个人使用的随手记录, 就是介绍了下简单的使用

欢迎大家来吐槽,准备好瓜子饮料矿泉水,开整!!!

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

搞笑一则:能动手尽量别吵吵

查看评论

Django-MongoDB的使用

MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据...
  • y472360651
  • y472360651
  • 2017-07-09 10:55:51
  • 3810

Java操作MongoDB增删改查工具Demo

——因为实习工作需要,在学MongoDB,参考了公司的一个MongDB服务类,写了一个整合的Demo,涉及到的大部分的增删改查操作,而且还算规范,给大家参考!源代码:(完整项目文件下载链接:点击打开链...
  • zhangliangzi
  • zhangliangzi
  • 2016-06-21 21:43:21
  • 10633

结合使用 MongoDB 和 Django

http://blog.csdn.net/shanliangliuxing/article/details/8559919 简介: Django 是一种 Python Web 框...
  • sxb0841901116
  • sxb0841901116
  • 2014-09-17 10:24:03
  • 1470

如何在Django中使用mongodb数据库?

说在前面的话在Django的官方文档中,没有介绍mongodb数据库的任何使用方法,mongodb也不是django官方推荐使用的数据库。以下是django官方列出的内建数据库。官方地址: djan...
  • afar_ch
  • afar_ch
  • 2016-06-25 12:21:12
  • 3561

优雅的在django框架里使用mongodb

原文地址:http://artori.us/use-mongodb-with-django/ 在我们这里关于ruby和python的争论永远没有停息, 比赛之前也无意间让我发现了很多东西...
  • leiyonglin
  • leiyonglin
  • 2011-09-20 14:44:43
  • 9677

MongoDB+Django知识点

1:查看数据库:db 2:查看所有数据库:show dbs 3:切换数据库:use 数据库名 4:删除数据库:db dropDatabase() 5:集合创建:db。createCollection(...
  • Cs_hnu_scw
  • Cs_hnu_scw
  • 2017-07-20 22:04:15
  • 259

django 操作mongoDB Mongoengine教程(1)——概述

Mongoengine教程(1)——概述 APR 2ND, 2014 12:00 AM | COMMENTS MongoEngine是MongoDB的一个ODM(Object-Document...
  • sun754276603
  • sun754276603
  • 2015-10-16 15:22:00
  • 4398

django 操作mongoDB Mongoengine教程(4)——文件存储

MongoDB的GridFS支持直接在数据库中存储文件。要在MongoEngine中使用GridFS,只要使用 FileField 对象即可。以下是一个例子: class Animal(Docume...
  • sun754276603
  • sun754276603
  • 2015-10-16 15:25:58
  • 805

django连接mongodb数据库

一、环境基本步骤 1、进入开发环境的虚拟空间,不知道的请看传送门 2、基本包的版本 django@1.11.8 mongoengine@0.15.0 3、安装包pip install mongoe...
  • kuangshp128
  • kuangshp128
  • 2018-01-11 22:54:11
  • 243
    个人资料
    持之以恒
    等级:
    访问量: 2414
    积分: 214
    排名: 34万+
    文章存档