【发布时间】:2016-01-21 03:06:04
【问题描述】:
我在 mongodb 中插入批量记录。我正在使用本机数据库驱动程序来执行此操作,因为性能要高得多。在我的应用程序的其他地方,我正在使用猫鼬。我遇到的问题是 mongoose 将日期转换为不同的格式,而 mongodb 本机只是将其插入为自 1970 年以来的秒数。因此,以后基于该日期的 mongoose 查询不起作用。
这是我的猫鼬模式:
var MySchema = new Schema({
name : { type: String, required: true },
updatedAt : Date
});
还有我的 mongo db 批量插入:
var newRec = {
name : entry.Name,
updatedAt : Date.now
};
newRecords.push(newRec);
MySchema.collection.insert(newRecords, function(err, newRecs) {
res.json(newRecs.ops);
});
这会在数据库中产生:
{
"_id": {
"$oid": "562818ecf24d540f0053a38d"
},
"name": "Cool Record",
"updatedAt": 12312423512
}
如果它通过 Mongoose 运行,它会产生:
{
"_id": {
"$oid": "561fd90285b5e73f5626f74e"
},
"name": "Cool Record",
"updatedAt": {
"$date": "2015-10-20T20:01:17.553Z"
}
}
如果通过猫鼬,这样的查询效果很好:
MySchemda.find({ updatedAt : { $gt: lastSynced }}).exec();
但不要以其他方式工作。
【问题讨论】: