0
我有一個文件,看起來像這樣:如何在錄製的嵌入文檔的時間範圍內找到文檔?
{ "_id" : ObjectId("4e5044ecf9d7954533000002"), "events" : [
{
"state" : 1,
"time" : 1313882989,
},
{
"time" : 1313883005,
"state" : 0,
}
]}
你可以看到,「事件」是嵌入文檔的數組。狀態:1表示該文檔當時被設置爲「活動」(UTC爲秒),而狀態:0表示當時被設置爲「非活動」。這基本上給我當這個文件是有效(從1313882989到1313883005)
現在我試着去確定哪些文件是活躍在任何特定時間,如在1313883013,該活動和非活動之間落在時間的時間範圍事件。
我能得到這個查詢的內容:
db.plays.find({events:{$elemMatch:{state:1,time:{$lte:1313883013}}}})
它匹配一個完整的嵌入式文件,其中狀態= 1和時間< 1313883013.這是不夠而是因爲我需要確保文檔還不含無效事件在或1313883013.之前,所以我已經試過這樣:
db.plays.find({events:{$elemMatch:{state:1,time:{$lte:1313883013}},$not:{$elemMatch:{state:0,time:{$lte:1313883013}}}}})
,但無濟於事。我也嘗試過不同的變化。
我希望我已經明確了這一點,提前感謝任何幫助!