Mongoデータベースをセットアップしています。 mongoDbで新しい日付オブジェクトを作成するISO形式で日付オブジェクトを作成します。例:ISODate("2012-07-14T00:00:00Z")
Node.jsを使用して、mongoデータベースに接続し、データベースを照会しています。 JavaScriptで新しい日付オブジェクト(new Date()
)を作成すると、JavaScript日付オブジェクトが作成されます。例:Wed Mar 06 2013 14:49:51 GMT-0600 (CST)
JavascriptでISO日付オブジェクトを作成して、オブジェクトをmongoDbに直接送信して日付クエリを実行できるようにする方法はありますか
MongoDbで以下のクエリを実行できます
db.schedule_collection.find({
start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})
ノードからjavascript日付オブジェクトを送信すると実行できません
Mongodbクックブックは、datetimeモジュールを使用してmongoデータベースを照会するpythonの例を提供していますが、javascriptを使用する例は提供していません。
どんな助けも大歓迎です。よろしくお願いします
ノードでは、MongoドライバーはオブジェクトではなくISO文字列を提供します。 (例:Mon Nov 24 2014 01:30:34 GMT-0800 (PST)
)したがって、次の方法で単純にjs Dateに変換します:new Date(ISOString);
以下を試してください:
var temp_datetime_obj = new Date();
collection.find({
start_date:{
$gte: new Date(temp_datetime_obj.toISOString())
}
}).toArray(function(err, items) {
/* you can console.log here */
});
Node.jsで新しいDateオブジェクトをインスタンス化するこの問題を解決しました:...
Javascriptで、Date()。toISOString()をnodejs:...に送信します.
var start_date = new Date(2012, 01, 03, 8, 30);
$.ajax({
type: 'POST',
data: { start_date: start_date.toISOString() },
url: '/queryScheduleCollection',
dataType: 'JSON'
}).done(function( response ) { ... });
次に、ISOStringを使用して、nodejs:..に新しいDateオブジェクトを作成します。
exports.queryScheduleCollection = function(db){
return function(req, res){
var start_date = new Date(req.body.start_date);
db.collection('schedule_collection').find(
{ start_date: { $gte: start_date } }
).toArray( function (err,d){
...
res.json(d)
})
}
};
注:ExpressとMongoskinを使用しています。