MongoEngine – Javascript
MongoEngine的QuerySet对象有 exec_js() 方法,允许在MongoDB服务器上执行一个Javascript函数。这个函数处理以下参数 –
exec_js(code, *field_names, **options)
其中、
- code – 一个包含要执行的Javascript代码的字符串
-
fields – 在你的函数中使用的,将作为参数传递的字段
-
options – 你希望函数可用的选项(在Javascript中通过options对象访问)。
此外,还有一些变量也可以在函数的范围内使用,如下图所示
- collection – 对应于Document类的集合的名称。这应该被用来在Javascript代码中从db中获取集合对象。
-
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的名称,后面加一个点,应该在嵌入文档上的字段名称之前使用。