ホームページ >バックエンド開発 >Golang >MongoDB のストアド JavaScript 関数を使用してフィールド値を動的に割り当てるにはどうすればよいですか?

MongoDB のストアド JavaScript 関数を使用してフィールド値を動的に割り当てるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 07:24:11646ブラウズ

How Can I Use Stored JavaScript Functions in MongoDB to Dynamically Assign Field Values?

MongoDB での JavaScript の評価によるフィールド値の割り当て

MongoDB コレクションへのドキュメントの挿入を JavaScript の評価で強化して、フィールド値を動的に割り当てることができます。ただし、最初に指定されたコードは JavaScript ステートメントの評価に失敗し、代わりにスクリプトとして保存されます。

MongoDB ドキュメントでは、JavaScript 関数をサーバー側で system.js コレクションに保存する方法の概要が説明されています。ストアド関数を作成することで、Go クライアントから JavaScript をリモートで評価できます。

ストアド関数を使用する方法:

  1. system.js に関数を作成します。 collection:
db.system.js.insert({
    _id: "assignDate",
    value: function() {
        return ISODate();
    }
});
  1. を使用して Go からストアド関数を呼び出します。 Run() メソッド:
func createInstance(c *mgo.Collection) {
    result, err := c.Run(
        bson.M{"eval": "assignDate()"},
    )
    checkError(err, "Could not get server time")

    var doc bson.M
    err = result.One(&doc)
    if err != nil {
        checkError(err, "Invalid result from stored function", 3)
    }
    lastSeen, ok := doc["retval"].(time.Time)
    if !ok {
        checkError(fmtErrorf("Invalid result from stored function: %v", doc["retval"]), "Invalid result from stored function: %v", 3)
    }

    // ... Insert document with evaluated field value
}

考慮事項:

  • MongoDB のサーバー側コード評価にはまだ制限があります。
  • ストアド関数を使用すると、JavaScript を評価するための回避策が提供されますが、そのパフォーマンスに注意することが重要です注意事項。

以上がMongoDB のストアド JavaScript 関数を使用してフィールド値を動的に割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。