1

我在 MongoDB 中使用整数的 _id 将“文章”保存为波纹管。当我想在php中删除带有_id的文章时,什么也没有发生。我使用的代码是:

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

我尝试过使用和不使用“安全”选项,但都不起作用。当我回显 $result 时,它是 bool(true)。

任何建议都非常感谢!

{ "_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" : [] }
4

1 回答 1

1

您在集合名称中有拼写错误。

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

应该是:

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

安全选项不会确认某些内容已被删除,只会确认没有错误。删除不会触发错误删除不存在的内容。

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

请注意,您不需要将整数重新转换为整数 - 如果您确实需要将输入转换为整数 - 使用 cast 语句:

$string = "42";
$int = (int) $string; // $int === 42
于 2012-04-04T13:15:54.973 回答