Refactor: criteria

1. replace criteria with where keyword
2. refector `where` function to support mongodb-like query more stable
and more accurate.
3. modify test cases