Javascript Mongoose使用$regex搜索所有字段
例如,我有以下模型:Javascript Mongoose使用$regex搜索所有字段,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,例如,我有以下模型: var advertise = mongoose.Schema({ username: String, text: String, locations: Array, days: Array, phone: Object, images: Array, age: Number, height: String, sex: String, categories: Array, tar
var advertise = mongoose.Schema({
username: String,
text: String,
locations: Array,
days: Array,
phone: Object,
images: Array,
age: Number,
height: String,
sex: String,
categories: Array,
targetAudience: Array,
prices: Array,
creator: String,
hairColor: Object,
eyeColor: Object,
breastSize: Object,
bodyType: Object,
advertiseType: Object,
created: {type: Date, default: Date.now},
is_active: {type: Number, default: 0},
order_id: String
});
现在我有一个名为searchString
的值。有没有办法用searchString
搜索所有字段
现在我只知道用$或键来做这件事。然而,这是不切实际的
例如:
mongoose.models.advertise.find({$or: [{'username': {'$regex': searchString}}]}, function (err, advertise) {
res.json(advertise)
})
注意如果您能够创建:
要执行搜索,请执行以下操作:
mongoose.models.advertise.find({ $text : { $search : searchString } }, function (err, advertise) {
res.json(advertise)
})
我没有真正尝试过,请毫不犹豫地更正潜在错误。您是否有可能使用mongoose创建文本索引?我认为这是最方便的方法。接受的答案不包括非字符串字段。但这并不是搜索所有字段,只搜索字符串字段。有没有解决方案用于在数组和对象中搜索?
mongoose.models.advertise.find({ $text : { $search : searchString } }, function (err, advertise) {
res.json(advertise)
})