我有一个sails-mongodb查询
db('insights').find( { $text: { $search: search} } ).limit(limit).skip(offset).exec(function (err, insights) { ... }
给出错误
{"name":"MongoError","message":"\"$search\" had the wrong type. Expected String, found RegEx","waitedMS":0,"ok":0
等效的Mongodb查询有效。
var col = db.collection('insights');
col.find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray(function(err, items) { .. }
“搜索”的示例值是“\”jim \“”搜索词所在的位置 {$ text:{$ search:“\”jim \“}
通过sails-mongodb传递$ text:$ search对象的正确方法是什么?
答案 0 :(得分:1)
下面是一个可以使用“ contains”的示例,可以使用sails-mongo
var musicCourses =等待Course.find({主题:{包含:'abc'} });
答案 1 :(得分:1)
提供的答案不起作用。 Sails-MongoDB 不支持 MongoDB 内置的 MongoDB 搜索结构。您最好使用来自父 Sails 数据库的本机 Mongo 管理器,然后像您在描述中那样使用本机 Mongo 查询。 (我知道您已经继续前进,但以防万一其他人正在寻找相同的东西)。
const db = sails.getDatastore().manager;
let result = await db.collection("insights").find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray();