mongo插入记录如果存在或更新记录在mongo使用php

fcg9iug3  于 2023-05-05  发布在  PHP
关注(0)|答案(2)|浏览(130)

我是新的mongodb和我试图写一个cron文件,将获取记录从我的mysql和存储在mongo集合。现在我需要写另一段代码来检查mongo集合是否有记录,如果没有,就必须插入或者更新记录
我的代码是这样的。

$query="select * from tt";
 $result=mysqli_query($connect,$query);
 while($fetch=mysqli_fetch_array($result)){
 $uname=$fetch['name'];
 $lastname=$fetch['lastname'];
 $surname=$fetch['surname'];
 $age=$fetch['age'];

$document=array("name"=>$uname,"lastname"=>$lastname,"surname"=>$surname,"age"=>$age);

我想在这里查一下记录是不是在mongo

$update = $collection->update($criteria,$document,array( 'upsert' =>true));

我不知道该给予什么标准

r8xiu3jd

r8xiu3jd1#

你应该使用$document作为条件:

$collection->update($document, $document, ['upsert' => true]);

但是,如果某个特定字段上有唯一索引,则可以使用该字段进行查询。

zzoitvuj

zzoitvuj2#

$result = $collection->updateOne(
  ['id' => $new->id],
  ['$setOnInsert' => $new],
  ['upsert' => true]
);

在这个例子中,如果存在一个id为$new的记录,它将更新;else插入文档$new

相关问题