0

我想从猫鼬的 find 方法的结果中获取数据。

SinceIdLog.find({},['since_id','saved_date'],{sort:{'saved_date': -1}, limit:1}, function(err, docs) {
    console.log(docs[0]);
    // some processes
});

在这种情况下,“console.log”的输出就是我想要的。

{ since_id: '214320642386968576',
  saved_date: Sun, 17 Jun 2012 13:16:04 GMT,
  _id: 4fddd8941390b38712000143 }

但是,当我像下面这样写时

SinceIdLog.find({},['since_id','saved_date'],{sort:{'saved_date': -1}, limit:1}, function(err, docs) {
    console.log(docs[0].since_id);
    // some processes
});

输出是“未定义的”。

你知道为什么吗?

我将 Twitter API 参数的“since_id”保存在 MongoDB 中。

在这段代码中,我想获取 since_id 来检索使用 OAuth 新更新的推文。

问候,

4

4 回答 4

0

删除语句中无关的]after 。since_idconsole.log

于 2012-06-18T13:27:05.450 回答
0

也许您对since_id不返回任何内容的字段有 getter 函数?检查架构。

于 2012-06-18T15:59:56.960 回答
0

我曾经遇到过同样的问题,我认为解析结果有帮助。

尝试以下

SinceIdLog.find({},['since_id','saved_date'],{sort:{'saved_date': -1}, limit:1}, function(err, docs) {
    docs = JSON.parse(docs);
    console.log(docs[0].since_id);
    // some processes
});
于 2012-06-18T16:05:08.900 回答
0

谢谢大家,

我找到了原因。

我没有正确定义架构,如下所示

var Schema = mongoose.Schema,
SinceIdLog = mongoose.model('SinceIdLog', new Schema());

这在保存数据时有效。

var XXX = new SinceIdLog(Object);
XXX.save(function(err) {});

但它似乎并不适合寻找。

我对其进行了修改,现在它可以正常工作了。

var Schema = mongoose.Schema,
SinceIdLog = new Schema({
    since_id: String,
    saved_date: Date
}),
SinceIdSchema = mongoose.model('SinceIdLog', SinceIdLog);

谢谢!!

于 2012-06-19T13:52:22.120 回答