我有我的数据在mongodb上这样存储:
{
"_id" : { "$oid" : "5385a437084ea4734b03374f" },
"linea" : 1,
"egunak" : [
{
"fetxa" : "2014/05/26",
"turnoak" : [
{
"turno" : 1,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "OF000d013" }
]
},
{
"turno" : 2,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "112-2233" },
{ "ref" : "3CI0-0001" },
{ "ref" : "666" },
{ "ref" : "33" },
{ "ref" : "3355" },
{ "ref" : "345" },
{ "ref" : "1234" }
]
},
{
"turno" : 3,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "ref" : "12" }
]
}
]
},
{ "fetxa" : "2014/05/27" },
{
"fetxa" : "2014/05/28",
"turnoak" : [
{
"turno" : 1,
"ordenes" : [
{ "ref" : "3CI0-0001" },
{ "of" : "OF200013" }
]
},
{
"turno" : 2,
"ordenes" : [
{ "ref" : "3CI00001-" },
{ "of" : "OF232233" },
{ "of" : "OF289977" }
]
},
{
"turno" : 3,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "OF200-000" },
{ "ref" : "3CI00001" },
{ "of" : "OF200000" },
{ "ref" : "3CI00001" }
]
}
]
},
{ "fetxa" : "2014/05/29" },
{ "fetxa" : "2014/05/30" },
{ "fetxa" : "2014/05/31" },
{ "fetxa" : "2014/06/01" }
]
},
{
"_id" : { "$oid" : "5385a448084ea4734b033750" },
"linea" : 2,
"egunak" : [
{
"fetxa" : "2014/05/26",
"turnoak" : [
{
"turno" : 2,
"ordenes" : { "ref" : "123" }
}
]
},
{
"fetxa" : "2014/05/27",
"turnoak" : [
{
"turno" : 1,
"ordenes" : [
{ "ref" : "3CI00002" },
{ "of" : "2OF000013" }
]
},
{
"turno" : 2,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "2OF2233" },
{ "ref" : "3CI00001" },
{ "ref" : "999" }
]
},
{
"turno" : 3,
"ordenes" : [
{ "ref" : "3CI00001" }
]
}
]
},
{
"fetxa" : "2014/05/28",
"turnoak" : [
{
"turno" : "2",
"ordenes" : { "ref" : "66" }
}
]
},
{
"fetxa" : "2014/05/29",
"turnoak" : [
{
"turno" : 1,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "2OF200013" }
]
},
{
"turno" : 2,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "2OF232233" },
{ "ref" : "3CI00001" }
]
},
{
"turno" : 3,
"ordenes" : [
{ "ref" : "3CI00001" },
{ "of" : "2OF200000" },
{ "ref" : "3CI00001" },
{ "of" : "2OF200000" },
{ "ref" : "3CI00001" }
]
}
]
},
{ "fetxa" : "2014/05/30" },
{ "fetxa" : "2014/05/31" },
{ "fetxa" : "2014/06/01" }
]
}
现在我想查找两个日期之间的数据,但数据是用字符串存储的,我该如何实现?或者我需要以日期格式存储我的数据?
这是我在nodejs上的持久化函数:
exports.save = function(req, res){
db.open(function(err, db) {
if(!err) {
var data = req.body;
var BSON = mongo.BSONPure;
var o_id = new BSON.ObjectID(data._id);
db.collection('test').update({'_id': o_id}, { $set :{ egunak: data.egunak } }, {safe:true, multi:false, upsert:false}, function(e, result){
if (e) console.log(e)
res.send((result===1)?{msg:'success'}:{msg:'error'})
})
} else {
onErr(err, function(){
console.log(err);
});
}
});
};
$ set值是我的JSON。如何存储日期数据?
答案 0 :(得分:0)
JSON.stringify(js_object); //这将js Object转换为字符串格式的对象
发送数据之前,
收到数据后JSON.parse(object_in_string_format); //将字符串格式的对象转换回js对象。
。阅读更多Mozilla MDN。
您应该将日期时间存储在日期类型
然后您可以像以下一样“选择”:
db.collection('Datuak').find(
{"egunak.fetxa": {"$gte": new Date(1979, 1, 1), //date type here
"$lt": new Date(2222, 12, 31)}
}
)
答案 1 :(得分:-2)
虽然最好以DATE格式存储日期,但如果仍需要解决方法,则可以使用Date.parse(date)函数以毫秒为单位获取值。我在mongodb 2.4.8中尝试了以下,两者都运行良好
var d = Date.parse("March 21, 2012");
var d = Date.parse("2014/03/21");
现在'd'将包含以毫秒为单位的数据,您可以使用它来查找两个日期之间的数据。