1
私はmongoDBコレクションにドキュメントを挿入するnodeJSアプリケーションを開発中です。ドキュメントには、作成時刻を記録するcreatedAtフィールドがあります。私はまた、コンソールにクエリの最新の一致を記録する機能があります。mongoDBクエリの結果でmoment.maxを使用するとエラーが発生する
コード:
function getResult(player){
let timeList = [];
MongoClient.connect(url, (err, db) => {
if(err){
console.log(err);
}
else{
let count = db.collection('PokeBook').count({ 'player1': player }); //count function returns a promise
count.then((val) => {
db.collection('PokeBook').find({ 'player1': player }).forEach((doc) => {
timeList.push(doc.createdAt);
console.log(doc.createdAt);
if(val===timeList.length){
myEmitter.emit('full', timeList);
}
});
});
}
});
}
//code for the emitter:
myEmitter.on('full', (arr) => {
console.log('full emitted');
console.log(moment.max(arr));
});
コードの瞬間を言って、エラーを返す[i]を.isValidは関数ではありません。 moment.maxコード行にコメントすると、コンソールに "full emitted"を正常に記録できます。
これがなぜ起こり、どのようにこれを修正するのかについてのアドバイスは、非常に高く評価されます。 :)
それは別のエラーにこの時間を返します:locale.longDateFormatは関数ではありません
また、あなたは
doc.createdAt
がDate
かNumber
のいずれかであると仮定すると、瞬間を使用してO/Wmax
を自分で実装することができます。 – Ajmal'doc.createdAt'の' typeof'は何ですか?さらに、私は別のオプションで自分の答えを更新しました。 – GilZ
彼らはモーメントオブジェクトでした。 Dateオブジェクトを生成するようにコードを変更し、最初のメソッドを使用しましたが、うまくいきました。ありがとうございました! :) – Ajmal