$ regex需要正则表达式错误mongodb stitch

时间:2018-04-03 04:42:21

标签: javascript regex mongodb mongodb-stitch

当我尝试查询Mongodb Stitch时出现此错误:

  

错误:$ regex需要正则表达式       在client.js:557

这是我的代码:

const searchByName = async (data) => {
    let db = await MongoConnect(),
      collection_users = db.collection('users'),
      users

console.log(data.name)

let regxName = new RegExp(data.name)

console.log(regxName)

try {
    let users = await collection_users.find({ name: { $regex: regxName, 
      $options: 'i' } }).execute()
    console.log(users)
} catch (error) {
    return error
}

2 个答案:

答案 0 :(得分:0)

在MongoDB Stitch函数中,您必须使用BSON.BSONRegExp全局函数将其转换为Stitch的正确格式。

以下是一个例子:

exports = function(keyword) {
    var mongodb = context.services.get("mongodb-atlas");
    var coll = mongodb.db("DBNAME").collection("users");
    return coll.find({
      name: BSON.BSONRegExp(keyword, "i") 
    }).toArray();
};

并在客户端上调用它,如:

stitchClientPromise.then(stitchClient => 
  stitchClient.executeFunction('FUNC_NAME', 'jhon')
).then(users => console.log('success: ', users))
  .catch(e => console.log('error: ', e));

答案 1 :(得分:0)

感谢您的帮助,此方法有效。 (所有客户方)

import { BSON } from 'mongodb-stitch'

let bsonRegex = new BSON.BSONRegExp('pattern', 'i')

let users = await collection_users.find({ name: bsonRegex }).execute()

返回模式

的结果