Node.js 如何在sails mongodb中使用{$text:{$search:search}}?
我有一个sails mongodb查询Node.js 如何在sails mongodb中使用{$text:{$search:search}}?,node.js,mongodb,sails-mongo,Node.js,Mongodb,Sails Mongo,我有一个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"
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) { .. }
“search”的一个示例值是“\”jim\”,其中搜索词是
{$text:{$search:\'jim\'}
通过sails mongodb传入$text:$search对象的正确方法是什么?下面是一个可以使用“contains”的示例,它可以使用sails mongo完成 var musicCourses=await Course.find({subject:{contains:'abc'} }))
提供的答案不起作用。Sails MongoDB不支持MongoDB中的MongoDB内置搜索构造。最好使用父Sails数据库中的本机Mongo管理器,然后像描述中那样使用本机Mongo查询。(我知道您已经继续,但以防其他人也在寻找相同的内容)
我不再使用sailsjs,所以我很难检查它是否有效。您能扩展您的答案以显示示例输出和sails配置吗?
const db = sails.getDatastore().manager;
let result = await db.collection("insights").find( { $text: { $search: search } } ).skip(offset).limit(limit).toArray();