我試圖將n的唯一日期(允許說2000+記錄)傳遞給前端,給用戶一個mm/yyyy
的列表以便按月選擇記錄。查詢一個月/年的記錄集(不是ISO DATE)
然後我需要它將他們選定的月份作爲ID(當前格式爲mm-yyyy
)傳遞到後端,然後在該月份/年中僅查詢該組記錄。
我能夠獲得所有記錄的所有不同月份/年份。但現在我需要通過month/year
作爲參數。
我的問題是:如何查詢所有符合給定月份/年份的記錄?
我之前發佈了關於similar的更多信息,其中user3100115建議使用$redact。
Docs說在一年內通過,{ $match: { year: 2014 } },
,我假設你也可以在一個月內做到這一點。但之後並沒有真正理解它的「編輯」部分。
所以我只是想用$比賽和今年獲得的所有記錄:
db.mycollection.aggregate({ $match: { year: 2015 } });
,因爲我沒有一個簡單的year
場在我的文檔......而一個與date
ISO格式返回其無。
我已經試過
var query = Order.aggregate(
{
$project:
{
year :
{
$year: '$date'
},
month:
{
$month: '$date'
}
}
},
{
$match:
{
year : year,
month: month
}
}
);
但這並不返回文檔對象,只有_id,月份,年份:
{ _id: 'someid',
year: 2015,
month: 3 },
{ _id: 'someid',
year: 2015,
month: 3 },
真棒,但我怎樣才能得到實際的文件從該物體。它只返回_id,month,year的對象。 – Growler
只是增加了一些信息。看看是否有幫助。 –
原來是爲了獲得完整的文檔對象,你可以做'document:「$$ ROOT」' – Growler