にBSONタイプEOOから変換することはできません私は(ルビー)集約フレームワークを使用しようとしている」と、次のように日付をプロジェクト:のMongoDB:日付
db['requests'].aggregate([
{"$project" => {
_id: 0,
method: '$method',
user: '$user',
year: {'$year' => '$timestamp'}
}}])
ドキュメントはこの1つのようなものです:
{
_id: ObjectId("5177d7d7df26358289da7dfd"),
timestamp: ISODate("2013-04-12T03:58:05+00:00"),
method: "POST",
status: "200",
inputsize: "874",
outputsize: "4981",
user: "131"
}
が、私は次のエラーを取得する:
Mongo::OperationFailure: Database command 'aggregate' failed: (errmsg: 'exception: can't convert from BSON type EOO to Date'; code: '16006'; ok: '0.0').
私はどの私と全く同じデシベルでこれを実行する場合、それは正常に動作するので、これは奇妙ですmongorestoreと一緒に輸入された。
明らかに、aggregate()に渡される配列の順序は重要です。何かが省略されているフィールドがある場合は、そのフィールドを$一致に追加し、$一致を配列の最初の要素にしたいと思うでしょう。私。 > db.user_account.aggregate([{$ match:{"uts":{$ exists:true}、 "chan_key": "333261c7a72650a95c68d30cd70"}}、{$ project:{"period_month":{$ month: "$ uts {$ sum:1}}}) –