根据日期相关条件更新mongo文档

时间:2015-12-22 16:29:45

标签: mongodb date updates

我有一个 MongoDB 用户集合。用户文档是这样的:

{
  "_id" : "REtKBfimJhmGcRtgQ",
  "createdAt" : ISODate("2015-12-18T21:30:40.342Z"),      
  "username" : "ziedmahdi",      
  "firstName" : "Feki",      
  "schedules" : [{
      "date" : ISODate("2015-12-24T00:00:00Z"),
      "periodsOfTime" : [{
          "startTime" : "10:00",
          "endTime" : "11:00"
        }]
    }, {
      "date" : ISODate("2015-12-27T00:00:00Z"),
      "periodsOfTime" : [{
          "startTime" : "10:00",
          "endTime" : "11:00"
        }]
    }, {
      "date" : ISODate("2015-12-31T00:00:00Z"),
      "periodsOfTime" : [{
          "startTime" : "10:00",
          "endTime" : "11:00"
        }]
    }]
}

我想从用户计划中删除两个给定日期之间的元素。

使用以下查询后,没有任何反应。

db.users.update({   
   _id: "REtKBfimJhmGcRtgQ"
},{
    $pull: {
        schedules: {
            $elemMatch: { date: {
                $gte: ISODate("2015-12-24T00:00:00Z"),
                $lte: ISODate("2015-12-31T00:00:00Z")
            }}
        }
    }
});

任何人都可以帮助我吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

经过一些额外的试验后,我找到了解决方案。

db.users.update({
    _id: "REtKBfimJhmGcRtgQ"
},{
    $pull: {
        schedules: {
            date: {
                $gte: ISODate("2015-12-24T00:00:00.000Z"),
                $lte: ISODate("2015-12-31T00:00:00.000Z")
            }
        }
    }
});