美文网首页
mongodb 排序 根据 _id 插入 测试

mongodb 排序 根据 _id 插入 测试

作者: 冰_Angus | 来源:发表于2019-01-03 14:50 被阅读0次

需求

插入数据
在默认排序中 数据显示在中间而不是最后

实验思路:

  • 按正常顺序插入x条数据
  • 拿第一条数据 加字段 id不变 删除后加入

代码:

#!/usr/bin/python3
# encoding: utf-8 
# @Time    : 2019/1/3 11:37
# @Author  : zza
# @Email   : 740713651@qq.com
import datetime
import time
from pprint import pprint

import pymongo
from mongomock import ObjectId
from tqdm import tqdm

mongo_url = "mongodb://127.0.0.1:27017", 'sort_db'
mongo_db = pymongo.MongoClient(mongo_url[0])[mongo_url[1]]


def made_data():
    mongo_db['demo'].drop()
    print("开始造数据")
    for i in tqdm(range(10)):
        time.sleep(1)
        mongo_db['demo'].insert({"timestamp": datetime.datetime.now()})


def set_data():
    # 之前想造个数据放进去  保存一下 如何生成 _id
    # http://api.mongodb.com/python/current/api/bson/objectid.html
    pprint(list(mongo_db['demo'].find()))
    gen_time = datetime.datetime(2019, 1, 1, 14, 12, 26)
    dummy_id = ObjectId.from_datetime(gen_time)
    dummy_id = str(dummy_id)[:8] + "5c2da85ffc904a3c84335788"[8:]
    dummy_id = ObjectId(dummy_id)
    print(dummy_id)
    result = mongo_db['demo'].insert({"_id": dummy_id, "info": "id made by python", "timestamp": gen_time})
    print(result)
    pprint(list(mongo_db['demo'].find()))
    pprint(list(mongo_db['demo'].find({}).sort([("_id", -1)])))


def re_insert_first():
    a = mongo_db['demo'].find()[0]
    mongo_db['demo'].delete_one({"_id": a["_id"]})
    a.update({"info": "change by py"})
    mongo_db['demo'].insert(a)
    pprint(list(mongo_db['demo'].find()))


made_data()
# set_data()
re_insert_first()

发现还是不行

后期的解决方案 :

数据量不大的情况下
删除后面的数据
然后顺序插入

相关文章

  • mongodb 排序 根据 _id 插入 测试

    需求 插入数据在默认排序中 数据显示在中间而不是最后 实验思路: 按正常顺序插入x条数据 拿第一条数据 加字段...

  • MongoDB学习笔记

    MongoDB只能插入字典 MongoDB插入数据 db.collection.insert()插入数据,_id存...

  • 部分简单排序

    调用测试 插入排序 二分插入排序 希尔排序 冒泡排序

  • 算法-排序-希尔排序

    由来 希尔排序是根据插入排序来实现的。 希尔排序根据插入排序的以下两点性质而提出的改进方法: 1.插入排序在对...

  • MongoDB 使用小结(一)

    1.生成自己的主键在项目中,最好不要把"_id"当做业务主键,也不要依赖它作为插入时间排序的依据。MongoDB在...

  • 数据结构-排序

    冒泡排序 插入排序 直接插入 二分法插入排序 选择排序 希尔排序 堆排序 快速排序 归并排序 基数排序 测试用例 ...

  • 详解排序算法--希尔排序

    希尔排序 希尔排序的由来是根据插入排序的。读者若不了解插入排序,可以参考笔者的详解排序算法--插入排序和冒泡排序....

  • 二、Elasticsearch的term filter来搜索数据

    1、根据用户ID、是否隐藏、帖子ID、发帖日期来搜索帖子 2、完成需求 (1)插入一些测试帖子的数据 (2)查看生...

  • MongoDB数据增删改查

    1.插入 db.集合名称.insert(document) 插入文档时,如果不指定_id参数,mongodb会为文...

  • java 常见的 8 种排序算法(内排序)

    插入排序: 一,插入排序介绍 插入排序是基于比较的排序。所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据...

网友评论

      本文标题:mongodb 排序 根据 _id 插入 测试

      本文链接:https://www.haomeiwen.com/subject/edbfrqtx.html