当我尝试查询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
}
答案 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()
返回模式
的结果