Mongoengine 简明教程

MongoEngine - Javascript

MongoEngine 的 QuerySet 对象具有 exec_js() 方法,该方法允许在 MongoDB 服务器上执行 Javascript 函数。此函数处理以下参数 -

exec_js(code, *field_names, **options)

其中,

  1. code - 一个包含要执行的 Javascript 代码的字符串

  2. fields - 在函数中使用,作为参数传递

  3. options - 您希望函数中可用的选项(在 Javascript 中通过 options 对象进行访问)

此外,还可以按以下方式将一些其他变量提供给函数作用域:

  1. collection - 与 Document 类对应的集合的名称。应该将该名称用于在 Javascript 代码中从 db 获取 Collection 对象。

  2. query - 由 QuerySet 对象生成的查询;传递到 Javascript 函数中 Collection 对象的 find() 方法。

  3. options - 一个包含 exec_js() 中传递的关键字参数的对象。

请注意,MongoEngine 文档类中的属性在数据库中使用不同的名称(使用 Field 构造函数中的 db_field 关键字参数设置)。

class BlogPost(Document):
title = StringField(db_field='doctitle')

为此,存在一种机制,可以在 Javascript 代码中将 MongoEngine 字段属性替换为数据库字段名。

当在集合对象中访问一个字段时,请使用方括号符号,并在 MongoEngine 字段名前加上一个波形符号 (~)。波形符号后的字段名将转换为在数据库中使用的名称。

document': doc[~title];

请注意,当 Javascript 代码引用嵌入式文档中的字段时,应在嵌入式文档中的字段名之前使用嵌入式文档字段的名称,后跟一个点。