ホームページ > バックエンド開発 > Golang > MongoDB でフィールド値を動的に割り当てるために JavaScript 式を評価するにはどうすればよいですか?

MongoDB でフィールド値を動的に割り当てるために JavaScript 式を評価するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-04 16:21:12
オリジナル
212 人が閲覧しました

How Can I Evaluate JavaScript Expressions to Dynamically Assign Field Values in MongoDB?

MongoDB フィールド値の JavaScript 式の評価

MongoDB では、JavaScript 式の評価に基づいてフィールド値を動的に割り当てることができます。ただし、JavaScript オブジェクトをフィールド値として挿入するだけでは、式は評価されません。

サーバー側のコード実行

MongoDB は、格納するためのメカニズムを提供します。サーバー側で JavaScript 関数を実行します。特別なコレクション system.js には、これらの関数が保存されます。このコレクションにアクセスして関数を実行するには、mgo.Database タイプの Run() メソッドを使用できます。 Run() メソッドは、引数として実行される JavaScript コードを含む eval コマンドを受け取ります。

たとえば、mgo ドライバーを使用して Go から myStoredFunction() という名前のストアド関数を呼び出すには、次のコマンドを使用できます。コード:

db.Run(bson.M{"eval": "myStoredFunction();"})
ログイン後にコピー

を設定するとします。 lastSeen フィールドを現在のサーバー時間に置き換えます。 system.js で getCurrentTime() という名前のストアド JavaScript 関数を作成できます:

function getCurrentTime() {
  return (new Date()).toISOString();
}
ログイン後にコピー

その後、insert ステートメントで次のようにストアド関数を参照できます:

err := c.Insert(
   struct{Serial, Priority, Url, LastSeen interface{}}{ 
      Url: getInformedHost() + ":" + getRunningPortString(), 
      Priority: rand.Int(), 
      LastSeen: bson.M{"$eval": "getCurrentTime()"}
   }
)
ログイン後にコピー

LastSeen フィールド値で $eval を使用すると、MongoDB は指定された JavaScript 式を評価し、結果をフィールド値として保存します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート