0
私はgraphQLでmongoDBコレクションにアクセスしています。これは、DBのデータです:GraphQL:部分文字列の一致を取得
{
"_id" : ObjectId("59ee1be762494b1df1dfe30c"),
"itemId" : 1,
"item" : "texture",
"__v" : 0
}
{
"_id" : ObjectId("59ee1bee62494b1df1dfe30d"),
"itemId" : 1,
"item" : "pictures",
"__v" : 0
}
クエリ
{
"data": {
"todo": [
{
"itemId": 1,
"item": "texture"
}
]
}
}
で{ todo(item: "texture"){ itemId, item } }
結果しかし、私は部分的に与えられた文字列に一致するデータセットを、見つける必要があります。 だから文字列tur
は、両方のデータセットを生じるはずである:テックスTUR E、PIC TUR ES
マイgraphQLスキーマは次のようになります。一般的には
var schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'RootQueryType',
fields: {
todo: {
type: new GraphQLList(todoType),
args: {
item: {
name: 'item',
type: new GraphQLNonNull(GraphQLString)
}
},
resolve: (root, {item}, source, fieldASTs) => {
var projections = getProjection(fieldASTs)
var foundItems = new Promise((resolve, reject) => {
ToDoMongo.find({item}, projections, (err, todos) => {
err ? reject(err) : resolve(todos)
})
})
return foundItems
}
}
}
})
})
'ToDoMongo.find'メソッドコードを貼り付けることはできますか?クエリをどのように構築するかを知る必要があります。これは、必要なものをサポートするために調整する必要があるためです。 – cbartosiak
@cbartosiak投稿されたスキーマにはresolve()コードがあります。そこに 'ToDoMongo.find()'があります。だから私は正規表現を使用する必要がありますか? – user3142695
はい、正規表現はMongo 'find'メソッドの入力です。これはあなたが興味を持っているような仕事をするためのモンゴの責任です。 – cbartosiak