在mongodb中搜索文档的子文档?

时间:2017-02-22 03:34:47

标签: mongodb mongoose mongodb-query aggregation-framework

我想使用以下代码搜索文档的子文档属性:

Model.UserRole.aggregate(
[
    {
        $match : {
            status : { $in : ["inactive"] },
        }
    },
    {
        $lookup : {
            from: "users",
            localField: "user",
            foreignField: "_id",
            as: "user"
        }
    },
    {
        $unwind : "$user"
    },
    {
        $match : { "user.name" : { $text: { $search: keyword } } }
    }
], function(err, result) {
    callback(null, result);
});

它给了我这个错误:

  

UnhandledPromiseRejectionWarning:未处理的承诺拒绝   (rejection id:1):MongoError:错误查询:BadValue:未知运算符:   $文本

我找不到任何有效的代码。有人建议大家吗?

1 个答案:

答案 0 :(得分:0)

你应该在$ unwind之后使用正则表达式进行搜索,因为索引只在管道的第一阶段使用。

尝试下面提到的代码

var student = _context.Database.SqlQuery<Student>("SELECT * FROM Student").FirstOrDefault();