Настоятельно рекомендуем MongoJack , достойную библиотеку для отображения объектов Java в / из документов MongoDB.
Код будет выглядеть примерно так:
import java.util.Arrays;
import org.mongojack.JacksonDBCollection;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
public class Test {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017)));
DB db = mongoClient.getDB("test");
Employee employee = new Employee();
employee.setNo(1L);
employee.setName("yogesh");
JacksonDBCollection collectionData = JacksonDBCollection.wrap(db.getCollection("NameColl"), Employee.class, String.class);
collectionData.save(employee);
mongoClient.close();
}
}
(PS: в настоящее время я использую mongo-java-driver v3.2.2 и mongojack v2.6.1)
Если вам нужно выполнить сортировку в базе данных (потому что у вас много записей и вам нужно, например, разбить их на страницы), единственный реальный вариант - превратить репутацию в денормализованное поле (например, обновлено в переопределенном методе save ()
модели).
Поскольку ваш расчетный код существует только в Python, вы также должны выполнить сортировку в Python:
sorted (Profile.objects.all (), key = lambda p: p.reputation)