相关疑难解决方法(0)

在填充mongoose之后找到

在使用mongoose填充之后,通过匹配文档内部的值来查询文档时遇到了一些麻烦.

我的架构是这样的:

var EmailSchema = new mongoose.Schema({
  type: String
});

var UserSchema = new mongoose.Schema({
  name: String,
  email: [{type:Schema.Types.ObjectId, ref:'Email'}]
});
Run Code Online (Sandbox Code Playgroud)

我希望所有用户都拥有类型为"Gmail"的电子邮件.

以下查询返回空结果:

Users.find({'email.type':'Gmail').populate('email').exec( function(err, users)
    {
      res.json(users);
    });
Run Code Online (Sandbox Code Playgroud)

我不得不求助于在JS中过滤结果,如下所示:

users = users.filter(function(user)
        {
          for (var index = 0; index < user.email.length; index++) {
            var email = user.email[index];
            if(email.type === "Gmail")
            {
              return true;
            }
          }
          return false;
        });
Run Code Online (Sandbox Code Playgroud)

有没有办法从mongoose直接查询这样的东西?

javascript mongoose mongodb node.js

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×1

mongodb ×1

mongoose ×1

node.js ×1