4

CSVから入力したコレクションがありますが、レコードに不要なフィールドがいくつかあるので、それらを削除したいのですが、何も実行されていないようです。これはCLIからのものです:

> db.stops.update({}, { $unset: {stop_lat: 1, stop_lon: 1} }, { multi: 1 })
> db.stops.findOne({stop_id: 1000})

{
  "_id" : ObjectId("50d30386884be8bf2a6c208a"),
  "stop_id" : 1000,
  // some other fields
  "stop_lat" : -27.339115,
  "stop_lon" : 153.043884,
}

私はここで何が間違っているのですか?

4

3 に答える 3

18

構文が正しくありません。2.2より前のバージョンのCLIでの更新操作は次のようになります。

update(基準、更新、アップサート、複数

修正すると機能します:

> db.stops.update({}, { $unset: {stop_lat: 1, stop_lon: 1} }, false, true)
> db.stops.findOne({stop_id: 1000})
{ "_id" : ObjectId("50d30386884be8bf2a6c208a"), "stop_id" : 1000 }

編集:Sammayeが指摘しているように、使用している構文は、mongodの最新の安定バージョンで有効です。

于 2012-12-20T13:13:26.977 に答える
0

ノードネイティブドライバーを使用しても同じ問題が発生しました。

{multi:1}動作しません

{multi:true}します

それは奇妙だ

于 2014-09-13T14:00:30.367 に答える
0

この方法を試してください:

2.0以降のバージョンのCLIは次のようになります。

update(基準、更新、アップサート、複数)

例 :

db.collectionname.update({condition}、{$ set:{groupid: '541ae260514ca0b76981222f'}}、false、{multi:true});

于 2014-09-26T10:17:29.217 に答える