- MongoEngine 教程
- MongoEngine - 首页
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 对象文档映射器
- MongoEngine - 安装
- MongoEngine - 连接到 MongoDB 数据库
- MongoEngine - 文档类
- MongoEngine - 动态模式
- MongoEngine - 字段
- MongoEngine - 添加/删除文档
- MongoEngine - 查询数据库
- MongoEngine - 过滤器
- MongoEngine - 查询操作符
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定义 QuerySet
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高级查询
- MongoEngine - 文档继承
- MongoEngine - 原子更新
- MongoEngine - JavaScript
- MongoEngine - GridFS
- MongoEngine - 信号
- MongoEngine - 文本搜索
- MongoEngine - 扩展
- MongoEngine 有用资源
- MongoEngine - 快速指南
- MongoEngine - 有用资源
- MongoEngine - 讨论
MongoEngine - JavaScript
MongoEngine 的 QuerySet 对象具有 **exec_js()** 方法,该方法允许在 MongoDB 服务器上执行 JavaScript 函数。此函数处理以下参数:
exec_js(code, *field_names, **options)
其中,
**code** - 包含要执行的 JavaScript 代码的字符串
**fields** - 在你的函数中使用,将作为参数传递
**options** - 你希望可用于函数的选项(在 JavaScript 中通过 options 对象访问)
此外,还有一些其他变量可用于函数的范围,如下所示:
**collection** - 对应于文档类的集合的名称。这应该用于在 JavaScript 代码中从 db 获取集合对象。
**query** - 由 QuerySet 对象生成的查询;在 JavaScript 函数中传递到集合对象的 find() 方法中。
**options** - 包含传递给 exec_js() 的关键字参数的对象。
请注意,MongoEngine 文档类中的属性可能在数据库中使用不同的名称(使用 Field 构造函数的 db_field 关键字参数设置)。
class BlogPost(Document): title = StringField(db_field='doctitle')
为此,存在一种机制用于在 JavaScript 代码中将 MongoEngine 字段属性替换为数据库字段名称。
当访问集合对象上的字段时,使用方括号表示法,并在 MongoEngine 字段名称前加上波浪号 (~) 符号。波浪号后面的字段名称将转换为数据库中使用的名称。
document': doc[~title];
请注意,当 JavaScript 代码引用嵌入文档上的字段时,应在嵌入文档上的字段名称之前使用 EmbeddedDocumentField 的名称,后跟一个点。
广告