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