[解決済み] mongoDB/mongoose: NULLでない場合は一意に決まる
2022-05-26 23:35:09
質問
コレクションのエントリを強制的に一意にする方法はないでしょうか? しかし、エントリがヌルでない場合のみ . e スキーマの例です。
var UsersSchema = new Schema({
name : {type: String, trim: true, index: true, required: true},
email : {type: String, trim: true, index: true, unique: true}
});
この場合 'email' は必要ありませんが、'email' が保存されている場合、このエントリが (データベースレベルで) ユニークであることを確認したいと思います。
空のエントリは値 'null' を取得するようで、email のないすべてのエントリは 'unique' オプションでクラッシュします (email のない別のユーザがいる場合)。
現在、私はアプリケーション レベルでそれを解決していますが、そのデータベース クエリを保存するのが大好きです。
thx
どのように解決するのですか?
MongoDB v1.8+ では、一意な値を確保しつつフィールドなしで複数のドキュメントを許可するという望ましい挙動を得るために
sparse
オプションを true に設定します。 というように。
email : {type: String, trim: true, index: true, unique: true, sparse: true}
殻の中も。
db.users.ensureIndex({email: 1}, {unique: true, sparse: true});
ユニークで疎なインデックスでは、まだ、複数のdocに
email
フィールドを持つ
価値
の
null
複数のドキュメントのみ
なくしては
アン
email
のフィールドを使用します。
関連
-
macシステムでのmongoDBデータベースのインストールと設定
-
MongoDB にシャードレプリカセットを追加する方法
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] Mongooseで文書を更新/アップサートするにはどうしたらいいですか?
-
[解決済み] Mongooseの"__v "フィールドとは?
-
[解決済み】Mongoose: findOneAndUpdateが更新されたドキュメントを返さない
-
[解決済み】MongoDBとMongooseの違いについて
最新
-
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による緯度経度座標による平坦地マッチング方式
-
Centos8でMongoDBをインストールする詳細な手順
-
2021年最新版Windows 10システムMongoDBデータベースインストールと構成環境
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
-
[解決済み] MongoDBシェルでデフォルトでプリティプリントする
-
[解決済み] MongoDB がすべてのクエリをログに記録する
-
[解決済み] MongoDB: インストールされているMongoDBの正確なバージョンを確認する方法
-
[解決済み] CAPの定理でmongodbはどこに位置するのか?
-
[解決済み] MongoDBのトランザクション不足を回避する方法とは?
-
[解決済み] PyMongoで正規表現クエリを実行する