7

簡単な質問ですが、mongoDBデータベースにリンクされたモルヒネを使用してワイルドカードクエリを作成する方法を知っている人はいますか?

これは、mongoステートメントがどのようになるかを示しています。

Mongo:db.users.find({name:/Joe/})
SQL: SELECT * FROM users WHERE name LIKE "%Joe%"

私のモルヒネステートメントは次のようになります。

モルヒネ:ds.find(File.class, "filename","/test/").order("filename").asList();

test1、testなどのファイル名がデータベースにあります

誰かがモルヒネでさえ可能かどうか教えていただければ幸いです。

ありがとう

4

3 に答える 3

20

「ワイルドカード」と呼ばれるのは、実際には「正規表現」です。

正規表現を表すJavaクラスはPatternです。これらをMorphiaのQueryオブジェクトのfilterメソッドに渡すことができます。

// create a regular expression which matches any string which includes "test"
Pattern regexp = Pattern.compile("test");
// use this regular expression to create a query
Query q = ds.createQuery(File.class).filter("filename", regexp).sort("filename");
于 2012-09-11T14:17:14.233 に答える
2

これも機能します

DS.find(Model.class).field("filename").startsWithIgnoreCase("name").asList();
于 2015-09-21T11:10:57.250 に答える
2

次のこともできます:

ds.createQuery(File.class)
    .criteria("filename").contains("test")
    .asList();
于 2016-12-20T22:28:13.713 に答える