![](/img/trans.png)
[英]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.