2012-04-04 22 views
1

MongoDBに "記事"を整数の_idで保存しています。 PHPで_idの記事を削除したい場合、何も起こりません。私が使用 コードは次のとおりです。PHPドライバを使用してMongoDBでドキュメントを削除できません

$result = $db->arcitle->remove(
    array("_id" =>intVal(41)), 
    array('safe' => true) 
); 

私は、とし、「安全な」オプションを使用せずに、両方のどちらも作品を試してみました。私が$ resultをエコーすると、それはbool(真)です。

ご迷惑をおかけして申し訳ありません。

{ "_id" : 41, 
    "when" : Date(1333318420855), 
    "publisher" : "5", 
    "title" : "10 Steps To The Perfect Portfolio Website", 
    "raw" : "", 
    "preview" : "", 
    "thumbnail" : "", 
    "content" : [ 
    "{}" ], 
    "tags" : null, 
    "votes" : 0, 
    "voters" : [], 
    "comments" : [] } 
+0

'INTVAL(: - とあなたが行う場合整数として入力をキャストする必要があります - 使用キャストステートメントを使用すると、整数として整数を書き直す必要はありません

> db.foo.remove({_id: "I don't exist"}) > db.getLastError() null 

注意491) 'はあなたの文書' _id'に一致しません – Mattias

+0

これはタイプミスです。投稿する際には忘れてしまいました。フィールドマッチがなければ何が起こるかをテストするために491に変更されました。 –

+0

'_id'フィールドがBson.ObjectIdタイプでないのはなぜですか? –

答えて

1

コレクション名にスペルミスがあります。

$result = $db->arcitle->remove(

はおそらくあるべき:何かを確認しません

$result = $db->article->remove(array("_id" => 41)); 

安全なオプションは、エラーがないだけで、削除されました。削除すると、存在しないものを削除するエラーが発生しません。

$string = "42"; 
$int = (int) $string; // $int === 42 
+0

ありがとうございます!しかし私は本当に私の方法が失敗した理由を本当に見ました! –