Php 如何检查MongoDB中是否已添加文档

Php 如何检查MongoDB中是否已添加文档,php,mongodb,Php,Mongodb,我有一个URL的集合 添加新URL时,我想检查它们是否已经添加,如果不是,则添加。(URL是唯一的) 这就是我尝试过的(非常糟糕) 我正在从MySQL迁移(使用MySqlDb类): 我查看了他们的文档(在MongoDB.org和PHP.net上)和stackoverflow,但找不到解决方案 因此,您能帮我找到一个解决方案或智能解决方案吗。使用它会更干净: 除了JohnnyHK建议使用findOne()检查文档是否存在之外,根据文档结构,您还有一些其他选项: 1) 如果每个文档存储一个url

我有一个URL的集合

添加新URL时,我想检查它们是否已经添加,如果不是,则添加。(URL是唯一的)

这就是我尝试过的(非常糟糕)


我正在从MySQL迁移(使用MySqlDb类):


我查看了他们的文档(在MongoDB.org和PHP.net上)和stackoverflow,但找不到解决方案


因此,您能帮我找到一个解决方案或智能解决方案吗。

使用它会更干净:


除了JohnnyHK建议使用
findOne()
检查文档是否存在之外,根据文档结构,您还有一些其他选项:

1) 如果每个文档存储一个
url
,请使用,如果url不存在,则会插入,如果存在,则会更新现有文档


2) 如果您的
url
存储在文档中的数组中,则仅当数组中不存在该值时,才使用它进行追加。

我尝试过:
$db->url->update(数组(“url”=>$linkurlcache”)、数组(“$inc”=>array(“url”=>$linkurlcache))、数组(“upsert”=>true))
您不想增加(
$inc
)url,您想
$set
它。例如:
$db->url->update(数组(“url”=>$linkurlcache)、数组(“$set”=>数组(“url”=>$linkurlcache))、数组(“upsert”=>true))
 $db->url->find(array('url' => $linkurlcache));
 $db->url->insert(array('url' => $linkurlcache));
$var = $db->url->find(array('url' => $linkurlcache))->limit(1);
foreach($var as $var1){if($var1['url'] == $linkurlcache){$j = 0;}else{$j = 1;}}
        if($j == 0){
            $db->url->insert(array('url' => $linkurlcache));
        }else{
                echo "exists";
        }
$Db->where('url', $linkurlcache);
if($results = $Db->get('tbl_url')){echo "exists";}else{

        $insertData = array('url' => $linkurlcache);
        if ($Db->insert('tbl_url', $insertData)){echo "added";} 
        echo $linkurlcache;

};  
$var = $db->url->findOne(array('url' => $linkurlcache));
if ($var == NULL) {
    $db->url->insert(array('url' => $linkurlcache));
}else{
    echo "exists";
}