【问题标题】:Query Mongo based on query string with match or regex基于匹配或正则表达式的查询字符串查询 Mongodb
【发布时间】:2017-02-17 02:25:40
【问题描述】:

我正在尝试查询 mongo,并根据特定字段(例如用户名或国家/地区)进行查询,它仅返回该匹配项。我可以通过获取请求获取我想要的数据,但是每当我尝试按特定字段查询时,它就会中断。它将返回此错误。

我的查询字符串:localhost:4002/users?firstName=Mark

err: MongoError: Can't canonicalize query: BadValue Unsupported projection option: firstName: { $match: "Mark" }

  app.get('/users', (req,res) => {
    co(function*(){
      var dbSocial = yield MongoClient.connect(dbSocialUrl);

      let query = {

          firstName:1,
          lastName:1,
          createDT:1,
          "_mailAddress.country":1,
          ownerId:1,
          userName:1
      }
      //
      if (req.query.firstName) {
        query["firstName"] = {
          $match: req.query.firstName || '',
        }
      }

      console.log('query',query);

      //get users
      var users = yield dbSocial
        .collection('user')
        .find({},(query))
        .limit(100)
        .toArray();
     })

【问题讨论】:

    标签: javascript mongodb mongodb-query database


    【解决方案1】:

    问题出在我的查询对象上。

    let query ={}
    

    作品

    【讨论】:

      【解决方案2】:

      $match 是一个聚合管道运算符,它接受一个指定查询条件的文档。它接受一个对象作为查询。

      { $match: { } }

      您应该放置您想要匹配的字段,在您的情况下,是 name。 所以构建这样的查询,

      db.collection_name.aggregate({$match:{'name':'Mark'}})

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-28
        • 1970-01-01
        • 2011-12-16
        • 2017-08-31
        • 1970-01-01
        • 2015-04-05
        • 2019-04-24
        相关资源
        最近更新 更多