0

Clojure と Congomongo で MongoDB を使用しており、ドキュメントの挿入中に基本的な Java スクリプトを実行しようとしています。

挿入中に Java スクリプトを実行する 2 つのユース ケースがあります。a) 最終変更されたタイムスタンプを書き込む b) ObjectId としてバージョン タグを作成する

どちらも非常に似ています。MongoDB シェルの例をいくつか示します。

db.test.update({_id:ObjectId("4fe3304fc2e61906ccdd7364")}, {$set: {created:Date()}}, false, false)

また

db.test.insert({version:ObjectId(), foo:"Bar"})

Congomongo またはプレーンな Java-Driver を使用してそれを行う方法を知っている人はいますか?

私は試した

org.bson.types.Code
org.bson.types.CodeWScope

そして次のようなものを得ました:

{ "_id" : ObjectId("4fe32998c2e61906ccdd735f"), "version" : function cf__14_anon() { return ObjectId(); } } 

これは興味深いですが、役に立ちません。残念ながら、クライアントのクロックが同期していることを確認できないため、クライアントでタイムスタンプ/バージョン/ObjectId を作成することはできません。versionサーバーとクライアントの間でデータの同期/複製を使用しており、過去のバージョン/タイムスタンプを作成すると、このプロセスが危険にさらされます。

事前にご協力いただきありがとうございます....

4

0 に答える 0