У меня есть много документов со схемой, показанной ниже, каждая из которых содержит (дата начала, конец), как показано на схеме ниже. Есть ли простой способ узнать, прежде чем сохранять новый документ, если новый документ startdate, enddate будет перекрываться с ранее сохраненными документами startdate, enddate? БлагодаряMongoDB найти диапазон дат, если накладывается на другие даты
{
"title" : "",
"owner" : "",
"notes" : "",
"startdate" : "",
"enddate" : ""
}
Ниже единственный документ, сохраненный в настоящее время:
Document.(anonymous function) {_id: "FADnPAxRu4Ps5hkLz",
title: "Round A",
customerid: "QDGvBQhS6vYgZtnRr",
startdate: "11/21/2014 7:25 AM"…}
_id: "FADnPAxRu4Ps5hkLz"customerid: "QDGvBQhS6vYgZtnRr"
enddate: "11/30/2014 6:09 AM"
startdate: "11/21/2014 7:25 AM"
title: "Round A"__proto__: Document.(anonymous function)
При попытке выполнения любого из следующего запроса на указанный выше документ не вернуть ничего, даже несмотря на очевидное перекрытие здесь.
db.Projects.find({'startdate': {$lt: '11/25/2014 6:26 PM'}, 'enddate': {$gt: '11/19/2014 6:26 PM'}}, {sort:{time: -1}});
db.Projects.find({'startdate': {$lt: '11/30/2014 6:26 PM'}, 'enddate': {$gt: '11/21/2014 6:26 PM'}}, {sort:{time: -1}});
ваших «даты» являются строками и не лексически прописал. Преобразуйте их в соответствующие [Тип даты] (http://docs.mongodb.org/manual/reference/bson-types/#date). –