前提・実現したいこと
nedb.jsというデータベースを使って、データベースに登録されている情報を検索したいです。
しかし、うまく検索できないパターンがあるので、そのパターンについて検索できるようにしたいです。
該当のソースコード
JavaScript
1const Datastore = require('nedb'); 2const db = new Datastore({ 3 filename: 'data.db', 4 autoload: true 5}); 6 7const data = ['PARTYが始まるよ', '大声ダイヤモンド', '毒リンゴを食べさせて']; 8 9const find = function(name) { 10 return new Promise((resolve, reject) => { 11 // 正規表現を使ってもダメだった 12 // db.find({'fileName': new RegExp(name)}, (err, docs) => { 13 db.find({'fileName': name}, (err, docs) => { 14 if (err) reject(err); 15 resolve(docs); 16 }); 17 }); 18} 19 20data.forEach(value => { 21 find(value).then(result => { 22 console.log('result: ' + JSON.stringify(result)); 23 }); 24});
以下はdata.db
です。他のプログラムでinsertしたものです。
JSON
1{"fileName":"PARTYが始まるよ","_id":"Yczvm7AqtQAfFRnM"} 2{"fileName":"大声ダイヤモンド","_id":"bxraUUYjRQPW7qbT"} 3{"fileName":"毒リンゴを食べさせて","_id":"tn9oRJ9hWucFkB9h"}
実行結果
$ node index.js result: [] result: [{"fileName":"大声ダイヤモンド","_id":"bxraUUYjRQPW7qbT"}] result: [{"fileName":"毒リンゴを食べさせて","_id":"tn9oRJ9hWucFkB9h"}]
発生している問題・エラーメッセージ
上記の実行結果のように、PARTYが始まるよ
の結果が取得できませんでした。
試したこと
正規表現を使った文字列の比較はうまくできているのかなと思い以下を試してみましたが、正しくできていました。
JavaScript
1const str = 'PARTYが始まるよ'; 2if (str.match(/PARTYが始まるよ/)) 3 console.log('match'); 4else 5 console.log('not match');
実行結果
match
あなたの回答
tips
プレビュー