我在Mongo DB中有这样的架构:
MAIN:
var mySchema= new mongoose.Schema({
username: { type: String, unique: true },
custom_schema: [mongoose.modelSchemas.Custom]
});
app.db.model('Main', mySchema);
我的自定义架构如下所示:
var custom_schema = new mongoose.Schema({
my_string:{type:String, default: '' },
somefield: {
//
}
});
app.db.model('Custom', custom_Schema);
我需要从数据库中检索所有记录,其custom_schema包含字符串my_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);
}
});
如何添加过滤器以搜索custom_Schema数组中的特定字符串?
答案 0 :(得分:1)
要在mongodb中搜索对象内部,您需要使用与常规对象object.var
中相同的指令,因此您的过滤器应该看起来像filters['custom_schema.somefield'] = ...