0

ここで実行するクエリは、mongo シェル インターフェイスで空白 (数字なし、基本的には何もない) を生成します。

> db.classrooms.update( { "c_type" : { $exists : true } }, { $unset : { "c_type" : 1 } }, false, true);

また、c_type を削除する必要があるコレクション行を確認しましたが、まだ存在しています。

基本的に、unset コマンドを使用してコレクション内の列/フィールドを削除しようとしています。構文に何か問題がありますか?

ありがとうございました!

4

2 に答える 2

1

私のコメントに加えて、私がテストした例を次に示します。

MongoDB shell version: 2.0.6
connecting to: test

> db.classrooms.insert({"example": "field", "c_type" : "Open"});
> db.classrooms.insert({"example": "array", "c_type" : ['Available']});
> db.classrooms.insert({"example": "obj",   "c_type" : {'Booked' : 'Yes'}});

> db.classrooms.find()
{
    "_id" : ObjectId("502abd4a332f362f58906683"),
    "example" : "field",
    "c_type" : "Open"
}
{
    "_id" : ObjectId("502abd4e332f362f58906684"),
    "example" : "array",
    "c_type" : [
        "Available"
    ]
}
{
    "_id" : ObjectId("502abd53332f362f58906685"),
    "example" : "obj",
    "c_type" : {
        "Booked" : "Yes"
    }
}

> db.classrooms.update(
   { "c_type" : { $exists : true } },
   { $unset : { "c_type" : 1 } }, 
   false,  // upsert
   true);  // update multiple records

> db.classrooms.find()
{ "_id" : ObjectId("502abd4a332f362f58906683"), "example" : "field" }
{ "_id" : ObjectId("502abd4e332f362f58906684"), "example" : "array" }
{ "_id" : ObjectId("502abd53332f362f58906685"), "example" : "obj" }
于 2012-08-14T21:08:03.043 に答える
0

理解した。基本的に、二重引用符$exists$unset:

> db.classrooms.update( { "c_type" : { "$exists" : true } }, { "$unset" : { "c_type" : 1 } }, false, true);
于 2012-08-14T21:21:48.740 に答える