Node.js 在MongoDB中搜索数组匹配项

Node.js 在MongoDB中搜索数组匹配项,node.js,mongodb,mongodb-query,database,Node.js,Mongodb,Mongodb Query,Database,我在Mongo DB中有这样一个模式: 主要内容: 我的自定义架构如下所示: var custom_schema = new mongoose.Schema({ my_string:{type:String, default: '' }, somefield: { // } }); app.db.model('Custom', custom_Schema); 我需要从数据库中检索所有记录,这些记录的自定义\u

我在Mongo DB中有这样一个模式:

主要内容:

我的自定义架构如下所示:

    var custom_schema = new mongoose.Schema({
        my_string:{type:String, default: '' },
        somefield: {
         //
        }
      });
app.db.model('Custom', custom_Schema);
我需要从数据库中检索所有记录,这些记录的自定义\u架构包含字符串my\u string中的特定字符串

我现在正在这样做:

var filters = {};
  filters.somefield=new RegExp('^.*?'+city+'.*$', 'i');

  req.app.db.models.Main.pagedFind({
    filters: filters,
    keys: 'mykeys',
    limit: 1000,
    page: 1,
    sort: '_by something'
  }, function(err, results) {
    if (err) {
      return next(err);
    }
  });

如何添加过滤器来搜索自定义模式数组中的特定字符串?

要在mongodb中搜索内部对象,需要使用与常规对象
object.var
中相同的指令,因此过滤器应该类似于
过滤器['custom\u Schema.somefield']=…

那么您的变量
my_数组
包含字符串?这有点让人困惑
var filters = {};
  filters.somefield=new RegExp('^.*?'+city+'.*$', 'i');

  req.app.db.models.Main.pagedFind({
    filters: filters,
    keys: 'mykeys',
    limit: 1000,
    page: 1,
    sort: '_by something'
  }, function(err, results) {
    if (err) {
      return next(err);
    }
  });