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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 16:21:12215ブラウズ

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 サイトの他の関連記事を参照してください。

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