Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose使用$regex搜索所有字段_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

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)
})