如何对猫鼬中的选定字段执行搜索

时间:2021-01-22 20:37:53

标签: mongodb mongoose

假设我有包含三个字段的 User 架构,一个 usernameemailpassword,我将如何使用 mongoose 进行查询,在其中搜索 {仅 {1}} 和 username 字段并返回匹配的文档。

例如在 expressjs 中,URL 将是:

email

发布到那个 ur 应该返回一个文档数组,这些文档在其电子邮件、用户名或两者中都有 http://localhost:8000/users/search?q=testuser

1 个答案:

答案 0 :(得分:1)

就像将值传递给带有 $or 条件的 find() 方法一样简单。

检查 this 示例:

db.collection.find({
  "$or": [
    {
      "username": {
        "$regex": "testuser"
      }
    },
    {
      "email": {
        "$regex": "testuser"
      }
    }
  ]
})

返回 usernameemail 包含 testuser 的值。

通过 mongoose,您可以使用同义词:

yourModel.find({
            "$or": [
               { "username": { "$regex":"testuser" } },
               {"email": { "$regex":"testuser" } }
             ]
        }).then(result => {
            console.log(result);
        }).catch(e => {
            console.log(e);
        })