如何仅查看猫鼬中的值的第一个字母来查找所有文档

Goo*_*Day 0 mongoose mongodb mongodb-query mongoose-populate mongoose-schema

我想按首字母查找所有文档。

情况是当我在mysql中查询时我可以做 WHERE Stores LIKE 'a%'

the result would be all data with the first letter a.
Run Code Online (Sandbox Code Playgroud)

问题是:

  • 如何使同样的query使用mongoose
  • 怎么样case-sensitive eg: (a,A)。这将是相同的查询与否?
  • 是否有必要lowercase_field为这种情况创建?

Ole*_*iuk 5

为此有一个$ regex运算符,查询将类似于:

Model.find({"name": {$regex: /^a/, $options: 'i'}}).exec(callback);
Run Code Online (Sandbox Code Playgroud)

可以简化为:

Model.find({"name": /^a/i}}).exec(callback);
Run Code Online (Sandbox Code Playgroud)

如果您需要在查询中传递变量:

var char = 'a';
Model.find({"name": {$regex: '^' + char}, $options: 'i'}}).exec(callback);
Run Code Online (Sandbox Code Playgroud)