問題タブ [morphia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MongoDB Java ドライバー / Morphia がプロパティを 2 回先頭に追加するのはなぜですか?
これが私の(サンプル)オブジェクトです。Morphia に必要なもの以外の注釈は付けていません。
そしてTreeHouse
オブジェクト:
type
正規表現を使用してクエリを実行しようとしています。これが私が使用しているMongoDBクエリです(コマンドラインで動作することが証明されています):
オブジェクトのfilter
メソッドを使用して、Java でこの正確な文字列を生成できます。Query
ただし、Java で検索を実行しようとすると、次のようになりますValidationException
。
の倍増に注意してくださいhouse.house.type
。
私は Morphia のバージョン 0.99 を使用しており、MongoDB Java ドライバーのバージョン 2.5 を使用しています。私は何かを正しくしていませんか?それとも、これは新しいバージョンで修正された問題ですか?
morphia - Morphiaで最後に挿入されたアイテムを照会する方法
Morphia で最後に挿入された項目を照会する方法と、コレクションのサイズを取得する方法は?
mongodb - morphia モジュール ObjectIdBinder 定義済みエラー
私は morphia、mongoDB、playframework が初めてです。これらを生産に使用しようとしています。私のコードは、先週最後に実行したときに問題なく動作していました。今朝、次のエラーが発生し続け、修正方法がわかりません。
10:20:53,048 情報 ~ /home/user/NetBeansProjects/um を開始しています 10:20:53,056 警告 ~ application.conf でモジュールを宣言することは非推奨です。代わりに dependencies.yml を使用してください (module.morphia) 10:20:53,060 情報 ~ モジュール morphia が利用可能です (/home/user/play-1.2.2/modules/morphia-1.2.1beta6) 10:20:53,062 情報 ~ モジュール morphia (/home/user/play-1.2.2/modules/morphia-1.2.1beta6) 10:20:54,538 警告 ~ Play を実行しています! DEV モードで 10:20:54,828 情報 ~ ポート 9000 で HTTP をリッスンしています (開始する最初の要求を待っています) ... 10:21:03,741 エラー ~
@67c6i5h2e リクエスト GET の内部サーバー エラー (500) /
コンパイル エラー ({module:morphia-1.2.1beta6}/app/morphia/ObjectIdBinder.java の 12 行目あたり) ファイル {module:morphia-1.2.1beta6}/app/morphia/ObjectIdBinder.java をコンパイルできませんでした。発生したエラー: タイプ ObjectIdBinder は既に定義されています
play.exceptions.CompilationException: タイプ ObjectIdBinder は、org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:672) の play.classloading.ApplicationCompiler$2.acceptResult(ApplicationCompiler.java:246) で既に定義されていますorg.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:516) at play.classloading.ApplicationCompiler.compile(ApplicationCompiler.java:278) at play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:412) play.Play.start(Play.java:482) で play.Play.detectChanges(Play.java:596) で play.Invoker$Invocation.init(Invoker.java:186) で Invocation.HTTP Request(Play!)
私もコードで何かを変更したことを覚えていません。
java - MongoDB 複合キー
私は MongoDb を使い始めたばかりで、一意にするつもりだったエントリのレコードが重複していることに気付きました。データに複合キーを使用する方法を知りたいのですが、それらの作成方法に関する情報を探しています。最後に、私は ORM レイヤーとして Java を使用して mongo と morphia にアクセスしているので、それらを回答に含めることは素晴らしいことです。
java - Morphia は update _id の代わりに新しいエンティティを保存します
非常にばかげた質問で申し訳ありません。モルフィア1.00を使用しています。いくつかのエンティティを持っています:
およびその他のフィールド、セッターとゲッター。同一のインスタンスを保存しようとしています:
私が知っているように、mongoDb は upsert コマンドを実行する必要があります (「存在する場合は更新し、存在しない場合は (単一のドキュメント) を挿入する」ことを意味します)。ただし、_id フィールドを更新するだけでなく、mongo は新しいエンティティを DB に保存します。
java - MongoDBを使用した単体テスト
私が選んだデータベースはMongoDBです。クライアントアプリケーションから実装の詳細を抽象化するデータ層APIを作成しています。つまり、基本的に単一のパブリックインターフェイス(IDLとして機能するオブジェクト)を提供しています。
TDD方式で実行しながら、ロジックをテストしています。各単体テストの前に@Before
、データベースシングルトンを作成するためのメソッドが呼び出されます。その後、テストが完了すると@After
、データベースを削除するためのメソッドが呼び出されます。これは、単体テスト間の独立性を促進するのに役立ちます。
ほぼすべての単体テスト、つまりコンテキストクエリの実行では、事前に何らかの挿入ロジックを実行する必要があります。私のパブリックインターフェイスは挿入メソッドを提供しますが、このメソッドを各単体テストのプリカーサーロジックとして使用するのは正しくないようです。
本当に何らかのモックメカニズムが必要ですが、モックフレームワークの経験はあまりなく、MongoDBで使用するようなモックフレームワークについてはGoogleが何も返さないようです。
これらの状況で他の人は何をしますか?つまり、人々はデータベースと相互作用するコードをどのように単体テストするのでしょうか。
また、パブリックインターフェイスは、外部構成ファイルで定義されたデータベースに接続します。この接続を単体テストに使用するのは正しくないようです。これも、ある種のモックの恩恵を受ける状況ですか?
java - Morphia Generics-不可能ですか?
Mongo / Morphiaを介してGenerics(M)のリストを保存しようとしています。保存しようとすると、次のエラーが発生します。
com.google.code.morphia.mapping.MappingException:汎用型クラスはサポートされていません:= class java.lang.Object
これは、MorphiaがGenericsをまったくサポートしていないことを意味しますか?うまくいく代替手段はありますか?ジェネリックスを使用すると、16クラス節約できます。許可されるより簡単な方法がなければなりません。
驚いたことに、私はこのエラーに役立つものを見つけることができませんでした。
mongodb - Mongo の間違った ObjectId
Mongo DB に問題があります。どういうわけか、行エントリに間違った ObjectId があります。ObjectId の長さが無効です。
Mongo にその ObjectId を強制的に削除させるにはどうすればよいですか??
ありがとう
mongodb - @Entity と @Embedded のどちらが最速ですか?
私は(今日)NoSql MongoDbを初めて使用し、Morphiaを理解しようとしています。
次のような @Entity が 1 つ必要です。
Stat
Friendlist
Userdataという名前の 3 つのテーブル (コレクション) がある場合
、UserData.Class を Userdata に保存し、Statistic.Class を Stat に保存します...
私の考えは、各ユーザーに一意の ObjectId UUID nr を与えてから、この UUID nr を ObjectId として持つすべての Statistic と FriendList を与えることでした。プログラムが統計のみを実行する必要がある場合、統計のみに対してロード/動作するためです。
UserData を取得するための 18000/時間のリクエストがある場合、次のように宣言する方が速くないでしょうか:
(同じ ObjectId を使用し、それらは別々のコレクション (テーブル) に保存されます)