将upsert与updateOne()方法一起使用以执行更新操作

时间:2020-10-15 18:34:14

标签: mongodb

我正在将upsert与updateOne()方法一起使用,以进行更新。

   db.practice.updateOne(
     {“title”:“Night Life”}, 
     {$set: detail}, 
     {upsert: true} 
   )

我的查询返回以下内容:

{
    "acknowledged" : true,
    "matchedCount" : 0,
    "modifiedCount" : 0,
     "upsertedId" : ObjectId("5f8884fed29ded706c3c6737")
}

下面是详细信息变量:

let detail = {
  “title” : “Night Life”,
  “year” : 2021,
  “rated” : “PG-13”,
  “released” : 2021,
  “runtime” : 60,
  “countries” : [
    “USA”,
    “UK”
  ],
  “genres” : [
    “comedy”,
    “drama”
  ],
  “director” : “Alpha Ly”,
  “actors” : [
    “Alpha Ly”,
    “Kris Dasha”,
    “Hope Grace”
  ]
}

当我在Compass中检查我的收藏时,看不到带有ObjectId(“ 5f8884fed29ded706c3c6737

但是,当我运行以下命令db.practice.find({"director": "Alpha Ly"}).pretty()时, 它会返回我在指南针中寻找的条目。

注意:我的收藏集中的文档数量仍然与创建的数量相同。 这里似乎是问题所在。为什么指南针不显示条目?

1 个答案:

答案 0 :(得分:0)

似乎我没有使用正确的数据库。 为了执行该命令,我应该使用use命令以及后跟我的数据库名称来切换到我的数据库。由于我没有这样做,所以更新查询创建了另一个集合并将文档插入那里。因此,我在数据库中找不到它。 谢谢