[解決済み] Mongoの$addToSetにキーを指定することはできますか?
2023-07-27 21:07:09
質問
ある文書があります。
{ 'profile_set' :
[
{ 'name' : 'nick', 'options' : 0 },
{ 'name' : 'joe', 'options' : 2 },
{ 'name' : 'burt', 'options' : 1 }
]
}
に新しいドキュメントを追加したい。
profile_set
のセットで、その名前がまだ存在しない場合(オプションに関係なく)、新しいドキュメントを追加したいと思います。
だからこの例では、もし私が追加しようとしたら。
{'name' : 'matt', 'options' : 0}
を追加する必要がありますが
{'name' : 'nick', 'options' : 2}
という名前のドキュメントがすでに存在しているので、何もしません。
nick
であるにもかかわらず
option
は違うのに。
Mongoは要素全体に対してマッチするようで、結局同じかどうかを確認するために、最終的に
profile_set containing [{'name' : 'nick', 'options' : 0}, {'name' : 'nick', 'options' : 2}]
で行う方法はありますか?
$addToSet
または別のコマンドを実行する必要がありますか?
どのように解決するのですか?
あなたは
update
をクエリオブジェクトで修飾することで、もし
name
がすでに
profile_set
. シェルでは
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
というわけで、これで実行されるのは
$push
にマッチする
_id
がなく、かつ
profile_set
要素がない場合は
name
は
'nick'
.
関連
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] mongo - サーバー 127.0.0.1:27017 に接続できませんでした。
-
[解決済み] 条件付きでMongoDBを更新する
-
問題が発生しました -----mongodb-------Uncaught TypeError: 未定義のプロパティ 'value' を読み取れませんでした。
-
[解決済み] MongoDB 3.2 の認証に失敗しました
-
[解決済み] Mongooseで文書を更新/アップサートするにはどうしたらいいですか?
-
MongoDBラーニングノート
-
[解決済み】ドキュメントの配列内のオブジェクトを更新する方法(入れ子更新)について)
-
[解決済み】RedisはmongoDBよりどれくらい速いのか?
-
[解決済み] PyMongoで正規表現クエリを実行する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SocketException: アドレスはすでに使用中です。
-
[解決済み] MongoDBでフィールドが存在することを確認する
-
[解決済み] MongoDBのデフォルトのユーザーとパスワードは何ですか?
-
[解決済み] 同じデータベース内でコレクションをコピーする最も速い方法は何ですか?
-
[解決済み] Mongo Restart Error -- /var/run/mongodb/mongod.pid が存在する
-
undefinedエラー: getaddrinfo ENOTFOUND localhost または MongoDB connected disconnected
-
[解決済み] 日付に基づいたクエリを返す
-
[解決済み】MongoDBで整数を挿入しようとすると、浮動小数点が挿入される。
-
[解決済み】MongoDB コレクションの変更をリッスンする方法は?
-
[解決済み] なぜMongoDBではインデックスの方向が重要なのか?