2016-11-30 6 views
1

とするとjsファイルにdateAdded : new Date().toISOString()が入り、mongoにインポートするデータのJSONファイルが作成され、mongoシェルに2016-11-26T21:51:23.879Zと表示されます。私はそれがISODate("2016-11-26T21:51:23.879Z")のように見えたかった。日付をISOラッパー

一般的に見られるISOラッパーに変更するには、次のような作業が必要でした。

Comps.find({category : "Consumer Electronics"}) 
    .then(function(comps){ 
     console.log(comps.length) 
     comps.forEach(function(e){ 
      console.log(e.name) 
      e.dateAdded = new Date(e.dateAdded.toString()); 
      // e.category = "Auctions"; 
      e.save(function(error, doc){ 
       if(error) console.log(error); 
       console.log("doc saved : " , doc.name, " ", doc.category, " " , doc.dateAdded); 
      }) 
     }) 
    }) 

`

私は日付がすぐにISOラッパーとのmongoに表示するためにJSファイルで行うことができるものはありますか?

Consumer Electronicsのクエリの上に私のコードでは、それは私が日付でクエリしたいと思われる。

たとえば、300個のドキュメントをインポートしたのですが、すでにそこに1000個入っていたら、1001を開始した日付でクエリできます。日付でクエリーしたいのですが、ISOwrapperと私はカテゴリー別に質問したくありません。

私はこれをマングーススキーマに持っていますdateAdded : {type : Date, default : Date.now},最近私はmongoimportを使っていますので、私はそれも問題ではないと思います。

答えて

0

toISOString()関数は、定義により、hereのように文字列を返します。

あなたはそれを変換せずにモンゴでDateオブジェクトを格納することができます:

e.dateAdded = new Date(); 
+0

を確認してください。だから、私は 'toISOString()'で遊んだのです。それが助けになるかどうかを調べる。 –

0

我々は日()を使用する場合、それはしかし、あなたが使用することができますISODateオブジェクトを返すために、文字列として日付を返します。オーバーロードされた日付形式に従います。詳細は

new Date("<YYYY-mm-dd>") which returns the ISODate with the specified date. 
new Date("<YYYY-mm-ddTHH:MM:ss>") which specifies the datetime in local datetime and returns the ISODate with the specified datetime in UTC. 
new Date("<YYYY-mm-ddTHH:MM:ssZ>") which specifies the datetime in UTC and returns the ISODate with the specified datetime in UTC. 

私はそのような日付を格納することができ知っているが、私は、私はDBを照会するとき、私は、新しいデータをインポートした後、それはISOラッパーで表示とは思わないmongod-Date

+1

私はそれらがmongoシェルにちょうど適用できると思います。私はあなたのJavaスクリプトでそれらを使用できるとは思わない。 – Veeram

+0

私はこの動作がドライバ固有であると信じています。解決策を見つけましたか? –

関連する問題