我有一个 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")
}}
}
}
});
任何人都可以帮助我吗?
非常感谢
答案 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")
}
}
}
});