MongoTemplateのidによるクエリがNULLの場合について
2022-01-20 20:51:47
Mongoのメリット
MongoDBはメモリ管理に干渉せず、OSの仮想メモリマネージャに任せるので、MongoDBの作業が簡略化されるというメリットがあります。これはMongoDBの作業を単純化するメリットがありますが、デメリットはMongoDBが占めるメモリの量を簡単に制御する方法がないことです。幸い、仮想メモリマネージャーが存在するので、ほとんどの場合、これを気にする必要はありません。
2. MongoDBのメモリ使用メカニズムにより、キャッシュの再構築が非常に優れている。要するに、プロセスを再起動しても、キャッシュは有効であるということだ
設定です。
spring.data.mongodb.uri=mongodb://test:123456@${ipAddr}:27017/mrqc?connectTimeoutMS=10000&authSource=admin
バージョン
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
エラーエンティティのクラス
MongoId が String に設定されているので ObjectId 型に設定する必要があります。
@Data
@Document("user")
public class User {
@MongoId
private String id;
@Field("userName")
private String userName;
}
正しいエンティティクラス
@Data
@Document("user")
public class User {
@MongoId
private ObjectId id;
@Field("userName")
private String userName;
}
クエリ文は、mongoId の型が String の場合はクエリされず、直接
findByIdメソッドまたはfind(query)またはidはObjectIdオブジェクトを渡すと、見つかりません、最初は設定が間違っていると思った、結果はMongoのIDはObjectIdはString型のエンティティクラスに対応できないためです。ObjectIdに変更すると、同じステートメントをクエリすることができます。
User user = mongoTemplate.findById(new ObjectId(userId),User.class, "user");
以上、MongoTemplateのidによるNULLクエリについてでした。MongoTemplate の null クエリについては、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を参照してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
springboot + mongodbによる緯度経度座標による平坦地マッチング方式
-
一括バックアップ・リストア インポート・エクスポート MongoDBデータ方式
-
2021年最新版Windows 10システムMongoDBデータベースインストールと構成環境
-
MongoDB にシャードレプリカセットを追加する方法
-
MongoDBのメモリ管理関連まとめ
-
MongoDBを循環型キュー方式で詳しく解説
-
Navicat Premiumでmongodbと接続する詳細チュートリアル
-
mongosのクラッシュ後に再起動できない問題の解決法
-
MongoDBの条件付きクエリとソートについて説明します。
-
MongoDBクエリ