node.js php使用mongodb 貓鼬/ mongodb自定義排序



mongodb操作方法 (1)

如果您決定在數據庫端執行此操作,則可能需要使用db.eval

從另一個問題提取答案:

我不認為這是可能的, 排序文檔當然沒有提到任何提供自定義比較函數的方法。

你可能最好在客戶端進行排序,但是如果你真的決定在服務器上做,你可以使用db.eval()來安排在服務器上運行排序(如果你的客戶端支持它)。

服務器端排序:

db.eval(function() { 
  return db.scratch.find().toArray().sort(function(doc1, doc2) { 
    return doc1.a - doc2.a 
  }) 
});

與對等的客戶端排序:

db.scratch.find().toArray().sort(function(doc1, doc2) { 
  return doc1.a - doc2.b 
});

我在MongoDB中有一個字符串類型的字段。 它將包含字母和數字的組合,如“10”,“101”,“11”,“112”,“x115”,“abc.5”。 現在,如果我告訴MongoDB對它們進行排序,它將按照字母順序排序,如下所示:

  • 10
  • 101
  • 11
  • 112
  • abc.5
  • X115

它在“11”之前命令“101”,我怎樣才能改變排序,使數字排序正確?





mongoose