私は$ currentDateを使用して挿入する日付を含むフィールドを持つmongoドキュメントを持っていますので、ドキュメントを挿入するとmongoサーバーの日付が入ります。 日付フィールドとサーバー日付の差が10分以上あることをすべてのドキュメントに照会してフィルタリングしたいとします。MongoDB queryサーバー時刻の日付フィールド
はこのDBを想定します。
{ "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2017-07-14T08:00:00Z") }
{ "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2017-07-14T08:05:00Z") }
は、私が上でクエリを実行すると仮定し、「2017-07-14T08:10:01Z」サーバの日付、 私は、クエリだけで最初の項目を返すことをしたいです。
db.items.aggregate([
{$project : {lut : {$subtract: ["** server date **", "$date" ]}}},
{$match : { lut : {$gte : 10*60*1000 }}} ]);
クエリを実行しているときにサーバーの日付を取得するにはどうすればよいですか。 私はnodeJSサーバからクエリを実行しています。サーバの日付をnew Date()に置き換えると、mongoサーバではなくノードサーバの日付が取得されます。
回答を書く代わりにより多くの情報がある場合は、質問を更新できます。こうすることで、人々はあなたの質問に答える前に情報を見つけることができます。 – bogdanciobanu