2014-08-27 187 views
0

嗨我想在同一時間插入和排序數據,但它不工作。有人有經驗嗎?Mongodb插入&排序

我的示例代碼如下所示:

collection.insert({id:"224535353", type:postValue, date:new Date}, {safe:true},{$sort: { id: -1 }}, function(err, result){ 
         console.log(result); 

    }); 

解決方案:

這個錯誤是我試圖排序相同的ID。

collection.find({id:req.session.loggedIn},{sort:{date:-1}}).toArray(function(err, posts) { 

      console.log(posts); 
}); 

回答

0

您排序上沒有找到插入。基本上你不想關心數據是如何存儲和它的mongodbs問題進行檢索排序的,如果你需要它有序因此與

collection.insert({id:"224535353", type:postValue, date:new Date},      
         {safe:true},function(err, result){console.log(result);}); 

插入後來發現與

collection.find({}).sort({id:-1}) 
+0

我會查詢和排序指定的數據,我有很多對象具有相同的id。collection.find({id:req.session.loggedIn})。sort:({id:-1})。toArray(function (err,posts){ \t \t \t \t \t \t console.log(posts);} – 2014-08-27 19:11:59

+0

是的,但你查詢一個特定的id,所以假設req.session.loggedIn爲5,那麼查找返回的所有文檔都將具有id = 5,所以按id排序它們將不會改變結果因爲他們都有相同的ID。 – Trudbert 2014-08-27 19:14:30

+0

是的。這是我的錯誤 – 2014-08-27 19:27:12

0

我不太清楚你想要什麼在這裏實現,或者如果你正在使用的和尚或但這樣做插入時的MongoDB不返回集合,甚至文檔的數組。它只是返回一個寫結果,你可以看到這裏.. http://docs.mongodb.org/manual/reference/method/db.collection.insert/

你可以做的是做插入,然後運行查找查詢,像這樣......

collection.insert({id:"224535353", type:postValue, date:new Date}, {safe:true}, function(err, writeResult){ 
     collection.find({},{sort:{id:-1}}, function(e, result){ 
      console.log(result) 
     }) 
}); 
+0

嗨感謝排序你的迴應。我正在使用本地MongoDB。我在我的代碼的其他位置使用find方法。插入數據到mongodb正在工作,但現在我想查詢插入的數據排序。我試過:collection.find({id:req.session.loggedIn},{sort:{id:-1}})。toArray(function(err,posts){console.log(posts);}但它不工作 – 2014-08-27 18:54:51

+0

@machupichu爲什麼你查詢一個特定的id,然後嘗試按它排序?id find({id:req.session.loggedIn})的所有值都是相同的(即req.session.loggedIn) – Trudbert 2014-08-27 19:03:35

+0

Hi所有的值都不一樣,我查詢有(req.session.loggedIn)的原始數據,我遍歷數據並輸出它 – 2014-08-27 19:10:12