[英]NodeJS connection with MongoDB using Mongoose
[英]mongodb sorted order insertion using Mongoose in nodejs
我有如下所示的猫鼬模式
var testdata = new Test({
Product_Type: 10,
Product_ID: 'GPR',
attrib: [
{
Year:2017,
Month: 3
},
{
Year:2011,
Month: 3
},
{
Year:2012,
Month: 3
},
{
Year:2015,
Month: 3
}
],
});
testdata.save(function(err, testdata) {
if(err){
console.log('saving data error',err);
}else{
res.status(200).json({'msg':'Data inserted'});
}
});
当我从mongodb检查时,attrib信息正在按照架构中给出的方式进行存储,但是我希望attrib存储在mongodb中,如下所示
{
Year:2017,
Month: 3
},
{
Year:2015,
Month: 3
},
{
Year:2012,
Month: 3
},
{
Year:2011,
Month: 3
}
我希望atrrib信息按年和月降序存储
MongoDB不会自动为您排序数据。
如果要存储排序的数据,则必须先对其进行手动排序,然后再将其插入Mongo。 为此,您可以尝试-
var testdata = new Test({
Product_Type: 10,
Product_ID: 'GPR',
attrib: [
{
Year:2017,
Month: 3
},
{
Year:2011,
Month: 3
},
{
Year:2012,
Month: 3
},
{
Year:2015,
Month: 3
}
].sort(function(d1,d2) {if(d1.Year==d2.Year) return d2.Month - d1.Month; else return d2.Year - d1.Year;})
});
这种排序方法将按照降序对对象进行排序。 这只是一个幼稚的实现。 随意改进方法。
而且,如果要将未排序的数据存储到Mongo中并希望在查询数据时由Mongo对其进行排序,则必须在查询中使用sort()
运算符。 在这里阅读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.