背景

最近需要从mongoDB中查询数据用于数据分析,一开始就用了pymongo后来发现使用起来很不方便,后面了解到有类似SQLAlchemy的ORM模块mongoengine能够操mongo

简单看了文档,就操练起来了,但是在模型的声明时以为会和SQLcalchemy一样不需要每个字段都严格匹配,结果查询出现了错误:

mongoengine.errors.FieldDoesNotExist: The fields "{'fileSize', 'guilds', 'paused', 'subcontractType'}" do not exist on the document "TaskBatch"

解决

网上查找资料才知道增加参数strict=False即可解决:

class TaskBatch(Document):
"""
任务批次表
"""
_id = StringField(primary_key=True, required=True)
taskId = StringField(max_length=100)
taskName = StringField(max_length=50)
name = StringField(max_length=255)
createdDate = DateTimeField(default=datetime.now)
createdBy = StringField(max_length=255)
meta = {'db_alias': 'aie_prod', # 根据别名自动使用对应客户端
'collection': 'TaskBatch', # 设置默认集合即可直接连接到对应集合
'strict': False # 设置非严格校验字段则不需要吧所有字段都声明
}

mongoengine模型字段非严格校验FieldDoesNotExist的更多相关文章

  1. 二 Djano模型层之模型字段选项

    字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...

  2. django项目模型字段

    一个模型(model)就是一个单独的.确定的数据的信息源,包含了数据的字段和操作方法.通常,每个模型映射为一张数据库中的表. 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 ...

  3. advancedsearch.php织梦高级自定义模型字段无法调用解决方案

    advancedsearch.php织梦dedecms 高级自定义模型字段无法调用解决方案 ,具体步骤如下: 1  打开修改puls/advancedsearch.php文件,找到复制代码(不同版本可 ...

  4. js的非空校验

    利用TagName获取元素名称,进行批量非空校验 var input = document.getElementsByTagName("input"); for (var i=0; ...

  5. Python之阻塞IO模型与非阻塞IO模型

    Python之阻塞IO模型与非阻塞IO模型 IO模型 1 阻塞IO: 全程阻塞 2 非阻塞IO: 发送多次系统调用: 优点:wait for data时无阻塞 缺点:1 系统调用太多 2 数据不是实时 ...

  6. Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合

    Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的 ...

  7. python开发IO模型:阻塞&非阻塞&异步IO&多路复用&selectors

    一 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非 ...

  8. orm查询优化 MTV和MVC模型 字段的chioces参数 Ajax

    目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_re ...

  9. Django_模型字段属性

    """ 定义属性 概述 ·django根据属性的类型确定以下信息 ·当前选择的数据库支持字段的类型 ·渲染管理表单时使用的默认html控件 ·在管理站点最低限度的验证 · ...

  10. PHPCMS_V9 模型字段添加单文件上传功能

    后台有“多文件上传”功能,但是对于有些情况,我们只需要上传一个文件,而使用多文件上传功能上传一个文件,而调用时调用一个文件URL太麻烦了. 使用说明: 1.打开phpcms\modules\conte ...

随机推荐

  1. Mybaties中的报错 Tag name expected解决

    有些时候一些小小的报错可能会没有注意到,等到报错的时候才发现,一个小小的细节也是很重要的,毕竟我们是bug生产员 来看报错的代码 when round((UNIX_TIMESTAMP(DATE_ADD ...

  2. React 使用链表遍历组件树

    React 为在有限的资源情况下,更好地控制UI的更新,提出了时间分片的概念.以达到三个目标: performing non-blocking rendering(无阻塞渲染):applying up ...

  3. 「SOL」网络流flow (模拟赛)

    题面 给定一张分层有向图,有 \(n\) 层,每层有 \(m\) 个点.只有从第 \(i\) 层的点连向第 \(i + 1\) 层的点的连边. 记 \(A(i,j)\) 表示从第 \(i\) 层的某些 ...

  4. mysql(insert + group by + on duplicate key update)

    group by 的内容设为子表tmp, 外面嵌套一层查询   连接 on duplicate key update key = tmp.new_key

  5. 【python】pip的问题

    在更新pip的时候因为安装pip需要管理员权限,但是呢,又把pip给uninstall了 所以结果就是没有pip这个模块了 https://stackoverflow.com/questions/18 ...

  6. json类型数据取出想要的部分

    因为才疏学浅,只能用很笨的方法. 以下是我拿到的数据的json型数据. {"result":{"ingredient":{"result": ...

  7. M1 IntelliJ IDEA2022安装报错解决方法

    下载地址:http://pan.jizhouyun.com/s/I3QJVzk3et 报错一:系统权限问题 报错示例: 1.XX已损坏,打不开:您应该将它移到废纸娄/已损坏 2.打不开:您应该推出磁盘 ...

  8. npm vue-router安装报错

    因为2022年2月7日以后,vue-router的默认版本,为4版本,而且 vue-router4,只能在vue3中,只有vue-router3中,能用在vue 2中 如果把vue-router4强制 ...

  9. DevExpress控件显示弹出注册对话框的应对方法

    删除Properties下的license.licx,目前来看是可以的 已测试,可以不显示注册对话框

  10. Beaver解析代码反向生成语法文件

    背景 Beaver是一款LALR的语法生成工具,现在有一个反编译项目的需求,需要将Beaver语法文件编译后的代码反向生成语法文件的需求,不去评论需求多么傻逼,直接干 设计 flowchart 语法文 ...