auto q = db.posts().query();
You can also create query in one command:
auto result = db.posts().query()
->where(Post::idField() == 1)
->toList();
Now, result contains QList<QSharedPointer<Post>> and can be used in code. query has other commands like: sum, avg, max, min and etc
auto post = db.posts().query()
->setWhere(Post::idField() == 1)
->first();
if(post)
qDebug() << "Post found in database";
else
qDebug() << "No post found!";
auto posts = db.posts().query()
->where(Post::idField() == 1)
->orderBy(Post::idField())
->toList();
Also, you can sort descending by adding ! to field name
auto posts = db.posts().query()
->where(Post::idField() == 1)
->orderBy(!Post::idField())
->toList();
auto ids = db.posts().query()
->select(Post::idField());
//ids is type of QList<int>
auto q = db.posts().query();
auto sum = q.sum(Post::idField());
auto max = q.max(Post::idField());
auto min = q.min(Post::idField());
auto count = q.count(Post::idField());
auto post = db.posts().query()
->where(Post::idField().in(QList<int>() << 1 << 2 << 3 << 4) || Post::isAccepted())
->first();
Or
auto post = db.posts().query()
->where(Post::idField().in({1, 2, 3, 4}) || Post::isAccepted())
->first();