MongoEngine - Javascript 执行
MongoEngine 的QuerySet 对象具有exec_js() 方法,允许在MongoDB 服务器上执行Javascript 函数。 此函数处理以下参数 −
exec_js(code, *field_names, **options)
这里,
code −包含要执行的 Javascript 代码的字符串
fields − 在你的函数中使用,它将作为参数传递
options − 您希望函数可用的选项(通过选项对象在 Javascript 中访问)
此外,还有一些变量可用于函数的作用域,如下所示 −
collection − Document 类对应的集合名称。 这应该用于在 Javascript 代码中从 db 获取 Collection 对象。
query − QuerySet 对象生成的查询; 传递给 Javascript 函数中 Collection 对象的 find() 方法。
options − 包含传递给 exec_js() 的关键字参数的对象。
请注意,MongoEngine 文档类中的属性可能在数据库中使用不同的名称(使用 db_field 关键字参数设置为 Field 构造函数)。
class BlogPost(Document): title = StringField(db_field='doctitle')
为此,存在一种机制,可以用 Javascript 代码中的数据库字段名称替换 MongoEngine 字段属性。
访问集合对象上的字段时,使用方括号表示法,并在 MongoEngine 字段名称前加上波浪号 (~) 符号。 波浪号后面的字段名称将被转换为数据库中使用的名称。
document': doc[~title];
请注意,当 Javascript 代码引用嵌入文档中的字段时,EmbeddedDocumentField 的名称后跟一个点,应在嵌入文档中的字段名称之前使用。