用Django全栈开发(进阶篇)——02. 在Django中花样玩转PyMongo(上)

大家好,这是皮爷给大家带来的最新的学习Python能干啥?之Django教程的进阶版

在之前《用Django全栈开发》系列专辑里面,皮爷详细的阐述了如何编写一个完整的网站,具体效果可以浏览线上网站:Peekpa.com

从进阶篇开始,每一篇文章都是干货满满。这一节,我们来讲述一下,在Django中,如何花式玩转pymongo。pymongo如何模糊查询,排序

皮爷的每一篇文章,都配置相对应的代码。这篇文章的代码对应的Tag是“Advanced_02”。

在这里插入图片描述

前瞻回顾

在上一节《用Django全栈开发(进阶篇)——01. 如何让Django连接MongoDB》,我们主要讲述了如何使用Django连接MongoDB数据库,并从里面读取数据的方法。

整体浏览

本文大概将会讲述以下内容:

  • 基本的增删改查;
  • 修改器的应用

由于内容很多,所以分开文章来说。接下来,就由我来给大家讲述以下如何玩转PyMongo。其实你只要会玩了PyMongo,MongoDB也就基本会个80%了,因为这俩差不多的。不信,你瞧。

插入

插入,非常的简单,PyMongo提供的插入函数主要有两个:

self.collection.insert()
self.collection.insert_many()

这里,insert()主要是插入单个数据,插入的内容为字典类型的数据即可。

insert_many()则是插入一组数据,一个数组,里面存放的是字典类型的数据

具体可参考的代码,是我当初创建地震数据库信息的时候。从核心数据库读取的100条数据,然后直接调用insert_many()方法插入到新的数据库中。

查找

我们在上一篇的例子中,将100条地震信息全部显示,通过的是一条:

list_data = self.collection.find()

来找到的。这个显然是返回了全部的数据。可以看到,如果调用count()方法,返回的数据是100:

count = list_data.count()
print(count)

#结果出入的是:100

这里要注意一下,这个.count()是PyMongo里面的方法,这个和MongoDB里面的.count()是一样的,返回的是cursor的结果数目。

接下来,我们来介绍一下关于搜索更加丰富的用法。

指定搜索条件精确查找

在实际开发中,很多情况,我们并不需要将全部数据都返回,可能只需要返回符合条件的特定数据,比如某天的数据,比如某个ID的数据,这种数据精确查找。

我们页面顶部右侧有个搜索输入框,我们就来通过这个给大家展示一下条件搜索怎么做:

在这里插入图片描述

这的搜索,我们主要是以地名为关键字的搜索。

首先,我们来到front/template/datacenter/jpearth/manage.html里面,来确认一下这个form是什么形式发送的关键字:

<form action="" method="get" class="form-inline ml-auto">
    <div class="form-group mr-4">
        <label for="title-input">标题:</label>
        <input type="text" class="form-control" name="
  • 16
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值