簡體   English   中英

從Java調用mongodb上的服務器js函數

[英]Calling server js function on mongodb from java

我喜歡從Java運行mongodb shell腳本的等價物

Mongo Shell腳本是:

db.users.insert(
   {
     _id: getNextSequence("userid"),
     name: "Sarah C."
   }
)

我已經在java中嘗試了類似的方法,但是沒有用。

BasicDBObject krUserRecord = new BasicDBObject("_id", getNextSequence("userid"))
            .append("name", "Sarah C");

有人可以幫忙嗎?

正如Kivanc所說,getNextSequence實際上是一個javascript函數。 正如mongo 在此處記錄的那樣,它只是findAndModify的包裝。 本質上,您需要創建一個文檔,其中包含要增加的計數器。 使用findAndModify對其進行遞增,以便獲得類似事務的行為。 如果要使用Java進行此操作,則需要在開始發布findAndModify之前確保文檔存在。 最好通過將findAndModify邏輯全部封裝在一個類中來做到這一點,以便您可以正確處理初始化。

在JDK中執行Mongo JS並非易事,因為原始客戶端具有JS庫,該庫包裝了命令調用以提供漂亮的語法。 Java驅動程序執行相同的工作以提供易於使用的Java API。

您可以使用Jongo庫,該庫旨在編寫與在mongo shell中類似的Java代碼。

如果要通過Java執行任何mongo JS,則可以使用SSH到MongoDB主機或安裝了mongodb客戶端的主機執行。 (在應用程序中包括mongo client可執行文件-一個使您無法使用特定數據庫版本的壞主意)。 是提供通過ssh調用的函數的最簡單包裝器的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM