これの代わりに:
db.database.find({A: {$regex: '/^*(abc def)*$/''}})
これを行う必要があります:
db.database.find({A: /abc def/i })
^と$はアンカーであり、繰り返し可能なものではないため、^*は実際には有効な構文ではありません。あなたはおそらくここで^。*を意味しました。ただし、^。*は必要ありません。これは、単に「後続の文字までのすべて」を意味し、(abc def)*は「0回以上「abcdef」」を意味しますが、文字列の最後にある必要があります。 $が原因です。最後の「i」は、大文字と小文字を区別しないようにするためのものです。