[解決済み] mongodbで配列の要素を削除する方法は?
2022-04-20 22:30:01
質問
以下は配列の構造です。
contact: {
phone: [
{
number: "+1786543589455",
place: "New Jersey",
createdAt: ""
}
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
ここでは、mongoのidだけ知っています(
_id
) と電話番号(
+1786543589455
つまり、phone 配列のインデックスがゼロの要素が電話番号とマッチし、 対応する配列要素を削除する必要があります。
contact: {
phone: [
{
number: "+1986543589455",
place: "Houston",
createdAt: ""
}
]
}
以下の更新方法で試してみました。
collection.update(
{ _id: id, 'contact.phone': '+1786543589455' },
{ $unset: { 'contact.phone.$.number': '+1786543589455'} }
);
しかし、それは削除されます。
number: +1786543589455
は、フォーン配列のゼロインデックス要素ではなく、 内部の配列オブジェクトから取得されます。試しに
pull
も成功しませんでした。
mongodbで配列要素を削除する方法は?
どのように解決するのですか?
以下のクエリを試してみてください。
collection.update(
{ _id: id },
{ $pull: { 'contact.phone': { number: '+1786543589455' } } }
);
これは、指定された
_id
を削除し、電話番号の
+1786543589455
をその
contact.phone
の配列になります。
を使用することができます。
$unset
を使用すると、配列内の値のセットを解除することができます (配列内の値を
null
) が、完全に削除されるわけではありません。
関連
-
プロファイルを使用してMongoDBで遅いクエリを分析する手順
-
MongoDBのloggingモジュールについて説明します。
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[MongoDB] 127.0.0.1:27017 への接続に失敗しました、理由。接続が拒否されました
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
-
[解決済み] MongoDB: インストールされているMongoDBの正確なバージョンを確認する方法
-
[解決済み] mongoDBがデータを保存している場所を知るにはどうすればよいですか?(デフォルトの/data/dbにはありません!)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Aliクラウドサーバーにmongodbを導入する詳細な流れ
-
MongoDBを循環型キュー方式で詳しく解説
-
mongodb フィールド値自己増殖型実装コード
-
MongoTemplateのidによるクエリがNULLの場合について
-
MongoDBの条件付きクエリとソートについて説明します。
-
MongoDBデータベースのインストールとデプロイメント、および警告の最適化
-
[解決済み] MongoDBシェルでデフォルトでプリティプリントする
-
[解決済み] コレクション内のすべてのキーの名前を取得する
-
[解決済み] MongoDBで配列のフィールドに一意な値や別の配列が含まれているかどうかを調べるには?
-
[解決済み] スキーマを定義せずにMongooseを使用するには?