mongodb:从一个update()请求中使用$ set和$ setOnInsert更新不同的字段

时间:2019-01-29 08:59:25

标签: mongodb

我试图将某种工作的开始时间和结束时间存储在mongodb中。作业可以发出N次更新请求来记录开始时间,并发出N次记录结束时间,因为它是一种作业,并且具有子作业。每次子作业开始或结束时,它都会发出更新请求,而我不知道哪个是startime请求,哪个是endtime请求。

基本上,我只想在第一次发出更新请求时记录开始时间,并且每次发出更新请求时,我都需要保持字段结束时间的更新。

为此,我在下面使用了查询

  db.myCollection.update(
 {"_id":"testCollection"},
 {
    "$setOnInsert":{"data.LINUX.startTime":"02:05"},  
    "$set":{"data.LINUX.endTime":"02:05"}
 },
 {upsert:true})

查询每次都会更新endTime,但不会插入开始时间。我不知道我的查询出了什么问题。如何更改上面的查询以完成我所需要的?

0 个答案:

没有答案