2017-02-12 20 views
0

私はjavascriptとMongoDB技術の初心者です。私はいくつかの条件(フィールドと値を使用)に基づいて "ビジネス"コレクションを照会しようとしています。私は日付フィールド(CreateDate)を使用して照会結果をソートする必要があります。私を助けてください。あなたの助けを前もってありがとう!:) [Screenshot of my code attached here] 注意:CreateDateフィールドの値は、YYYY-MM-DD形式の文字列、つまり2017-04-01で格納されます。照会結果の日付フィールドでソートする方法は?

CODE:

は、私は次のコードを実行しようとしたとき

"プロパティ 'ソート' を未定義の読み取ることができません" というエラーメッセージが表示されました

exports.readDocument = function(collection, uniqueKey, field, value, callback) { 

    MongoClient.connect(url, function(err, db) { 
     assert.equal(null, err); 
     db.collection("Businesses").find({ 
       "Id": uniqueKey 
      }, { 
       [field]: value, 
       _id: 0 
      }, 
      function(err, result) { 
       if (result) { 
        result.toArray(function(err, items) { 
         console.log("toArray", items, err); 
        }); 
        callback(true); 
       } else { 
        callback(false); 
       } 
      }).sort({ 
      "Created Date": -1 
     }); 
     db.close(); 
    }); 
}; 
+3

db.model.find()を使用してソートすることができます。sort() –

+0

テキスト形式のコードを質問に追加してください。あなたもここで見ているかもしれません:[mcve] –

答えて

0

あなたが使用しているフィールドの名前(「作成日」)クエリはDocumentsで使用されているものと同じです。また、フィールド名としてアンダースコアを使用して小文字の英数字を使用することをお勧めします。

0

データベース名が正しいかどうかを確認する必要があります。 ソートする前に期待通りの結果を得ていることを確認してください。 私は結果がnullであることを非常に疑っています、なぜあなたはエラー "未定義"オブジェクトを受け取るのですか?

0

あなたの構文が間違っていると思います。あなたの構文は、このフォームのマングースのドライバを試してみてください。この

collection.find().sort({datefield: -1}, function(err, cursor){...}); 
0
db.collection("Businesses").find({ 
       "Id": uniqueKey 
      }, { 
       [field]: value, 
       _id: 0 
      }).sort({"Created Date": -1}).exec(function(err, result) { 
       if (result) { 
        result.toArray(function(err, items) { 
         console.log("toArray", items, err); 
        }); 
        callback(true); 
       } else { 
        callback(false); 
       } 
      }) 

ようにする必要があります。

関連する問題