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
サーバーとクライアントの間でデータの同期/複製を使用しており、過去のバージョン/タイムスタンプを作成すると、このプロセスが危険にさらされます。
事前にご協力いただきありがとうございます....