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 的名稱,後跟一個點。

廣告

© . All rights reserved.