find方法不适用于日期

时间:2017-04-21 13:35:35

标签: node.js mongodb mongoose azure-cosmosdb

我通过来自nodejs的mongoose驱动程序访问documentdb。

db.recordingModel.find(
    {
        dateRecorded :
            {
                "$gte": new Date("2015-10-01T00:00:00.000Z")
            }

        // status:"sync_error"

    }, function(err, results) {
        console.log(results);
        console.log(err);
    });

我收到了下一个错误 -

{ [MongoError: cursor does not exist, was killed or timed out]
  name: 'MongoError',
  message: 'cursor does not exist, was killed or timed out' }

如果我访问任何其他字段,一切正常。这个查询有什么问题?感谢。

解决方法

我从azure portal注意到日期字段结构复杂,所以我更新了我的查询。

"dateRecorded.$date" :
 {
     "$gte": 1491956026000
 }

1 个答案:

答案 0 :(得分:1)

我无法使用Mongoose v4.7.1在我的网站上重现您的问题。

以下是我的完整示例代码:

var mongoose = require('mongoose');
mongoose.connect('DocumentDB-connection-string');

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!

  var kittySchema = mongoose.Schema({
    name: String,
    createdAt: Date
  });

  var Kitten = mongoose.model('Kitten', kittySchema);

  var fluffy = new Kitten({ name: 'fluffy', createdAt: new Date() });

  fluffy.save(function (err, fluffy) {
    if (err) return console.error(err);

    Kitten.find({createdAt: { '$gte': new Date("2015-10-01T00:00:00.000Z") }}, function (err, kittens) {
      if (err) return console.error(err);
      console.log(kittens);
    })

  });

});

我的文件:

enter image description here

输出:

enter image description here