58

特定のコレクションのすべてのエントリから特定のキーと値を削除する必要があります。remove を調べたところ、エントリ全体のみのようです。更新を見ると、特定のキーを null または空の文字列で更新しても、私がやろうとしていることが達成されるとは思えません。私はmongodbの初心者なので、無知を許してください。

簡単に言えば、どうすれば向きを変えることができますか

{
  "_id" : 1234,
  "name" : "Chris",
  "description" : "Awesome"
}

の中へ

{
  "_id" : 1234,
  "name" : "Chris"
}

エントリを削除して新しいエントリを作成したり、mongodb 以外のコマンドを使用したりせずに? ありがとう!

4

3 に答える 3

123

$unsetに電話してみてくださいupdate()

このような:

db.collection_name.update({ _id: 1234 }, { $unset : { description : 1} })

そして、vikneshwarupdateMany()がコメントしたように、すべての (または複数の) ドキュメントから 1 つのフィールドを削除する場合は、次のように使用できます。

db.collection_name.updateMany({}, { $unset : { description : 1} })
于 2012-04-13T19:04:50.837 に答える
-9

また、行が存在しないupsert()場合は新しいドキュメントとして挿入するか、既存のドキュメントがある場合は更新することも考えてください。_id

于 2012-04-14T09:12:41.147 に答える