首页 > 数据库 >Django操作mongo数据库二(MongoClient方式)

Django操作mongo数据库二(MongoClient方式)

时间:2023-02-16 19:00:32浏览次数:43  
标签:return mongo age collection Django result HttpResponse MongoClient name

一、基本环境

1、开发环境:

Python环境:Python 3.8.16

Django环境:4.1

2、需要安装的包

pip install pymongo

pip install mongoengine

二、开发参数配置

1、先创建一个mongoApp的应用

 

 

 

 

2、引入mongoApp2的urls

 

 

 

3、编写对mongo哭的增删改查方法(核心)

 

 

 

from django.shortcuts import render
import pymongo
from django.http import JsonResponse, HttpResponse
from pymongo import MongoClient

# 配置链接信息
client = MongoClient('mongodb://root:[email protected]:27017')
# 指定数据库
db = client['ycdb']
# 指定集合
collection = db['student_info']


#数据插入
def stuInser(request):
    stu1 = {'id': '001', 'name': 'zhangsan', 'age': 10}
    result = collection.insert_one(stu1)
    #print("result",result)
    return HttpResponse("insert success")

#增加多条
def stuInserMany(request):
    stu2 = {'id': '002', 'name':'lisi', 'age':15}
    stu3 = {'id': '003', 'name':'wangwu', 'age':20}
    result = collection.insert_many([stu2, stu3])
    return HttpResponse("insert many success")


#删除多条数据
def stuDeleteMany(request):
    result = collection.delete_many({"name": "zhangsan"})
    return HttpResponse("delete many success")

# 删除一条数据
def stuDeleteOne(request):
    result = collection.delete_one({"id": "001"})
    return HttpResponse("delete single success")

#修改一条数据
#update_one,第 2 个参数需要使用$类型操作符作为字典的键名
#姓名为zhangsan的记录,age修改为22
def stuUpdateOne(request):
    condition = {'name': 'zhangsan'}
    res = collection.find_one(condition)
    res['age'] = 22
    result = collection.update_one(condition, {'$set': res})
    print(result.matched_count,result.modified_count) #获得匹配的数据条数、影响的数据条数
    return HttpResponse("update single success")

#修改多条
#update_many,所有年龄为15的name修改为xixi
def stuUpdateMany(request):
    condition = {'age': 15}
    result = collection.update_many(condition, {'$set': {'name': 'xixi'}})
    print(result)  # 返回结果是UpdateResult类型
    print(result.matched_count, result.modified_count)  # 获得匹配的数据条数、影响的数据条数
    return HttpResponse("update many success")

#查询多条
def stuSelectMany(request):
    rets = collection.find({"age": 20})
    for ret in rets:
        print(ret)

    # 查询结果按年龄升序排序
    results = collection.find().sort('age', pymongo.ASCENDING)
    print([result['age'] for result in results])
    return HttpResponse("select many success")

#查询单条
def stuSelectOne(request):
    ret = collection.find_one({'name': 'zhangsan'})
    print(ret)
    return HttpResponse("select one success")

 

4、配置方法的访问路径

 

 

标签:return,mongo,age,collection,Django,result,HttpResponse,MongoClient,name
From: https://www.cnblogs.com/yclh/p/17127927.html

相关文章

  • Django操作mongo数据库一(配置文件里写连接信息)
    一、基本环境1、开发环境:Python环境:Python3.8.16Django环境:4.12、需要安装的包pipinstallpymongopipinstallmongoengine  二、开发参数配置1、先创建一个......
  • Django项目创建(一)
    一、创建django项目1、pycharm工具创建这种方式django会是默认最新版本的 2、命令行创建(1)创建新的开发环境condacreate--namepython3.8testpython=3.8(2)激活开......
  • Django项目创建应用(二)
    四、创建应用一个项目里可以创建多个应用,每个应用进行一种业务处理(1)激活当前项目的环境D:\pythonProject2023\djangoProject>activatepython3.8forDjango (python3.......
  • mongodb安装和使用
    ​简述  MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。​​  MongoDB是一个介于关系数据库和非关......
  • .Net6 + GraphQL + MongoDb 实现Subscription监听功能
    介绍查询、添加、修改我们已经演示了,我们来看下订阅。订阅大家可以理解为音乐软件,我们用户=>订阅音乐频道<=服务发送新的音乐通知到频道。有新的通知进入频道后,频......
  • 对服务器进行心跳检测 python django
    (由于春节期间连不上服务器,但又不知道是不是服务器关机了,因此写一个心跳检测功能遇到问题时可以排查部分原因)具体来说分为客户端和服务端,客户端为校园服务器,服务端为我们自......
  • django admin 字段设置
    来源:http://xieboke.net/article/100/djangoadmin后台里有些输入框长度、宽度、提示语等,可能不满足我们的需求,这个时候,我们就需要对admin的样式进行更改。还是先从d......
  • Python+Django(4):创建其他网页(模板继承)
    模板继承:1,修改主页父模板:抽取通用元素,在index.html同级目录下新建base.html<p><ahref="{%url'learning_logs:index'%}">LearningLog</a></p>{%blockcont......
  • Django——报错信息
    安装报错:报错信息:ValueError:nosignaturefoundforbuiltin<built-infunctionopenssl_md5>解决方法:这个上面写的是MD5错误,但不是这个样子,只是因为运行的配置......
  • Django版本要求的Python版本
    版本对应表Django版本Python版本2.23.5,3.6,3.7,3.8(addedin2.2.8),3.9(addedin2.2.17)3.13.6,3.7,3.8,3.9(addedin3.1.3)3.23.6,3.7......