具有物化路径的树结构的 Meteor 正则表达式查询有问题
Having problems with Meteor regex query for Tree structure with materialzed paths
我有一个带有物化路径的树,我在其中存储每个节点的路径和 id:
path: ',tCENL4sLgfTPpNHqA,EDbvc7YD2MpBSz5RR,nh4HhHpdEwkeiXXw2,ENN8hsjnvxi23dp7q,ef4hptkM32ScASa73,i8QdauXtcqjyGCAX7,',
当我运行直接在mongoDb上查询时,我可以找到结果:
db.tree.find({path:/^,tCENL4sLgfTPpNHqA,/}).count();
但是当我 运行 通过 Meteor 查询以获取根的所有子树时,我没有得到任何结果。我 运行 以下两个查询没有结果。
var rootPath = "/^," + rootNode._id + ",/";
Tree.find({path:rootPath}).fetch();
更新
问题在于在单独的块中将 rootpath 变量生成为字符串。如果我用硬编码 ID 替换 rootPath,它就可以工作。
所以我现在的问题是如何使用变量动态构建正则表达式?
要在正则表达式查询构建中使用变量,请像这样使用:
Tree.find({path:new RegExp(rootNode._id)}).fetch();
我有一个带有物化路径的树,我在其中存储每个节点的路径和 id:
path: ',tCENL4sLgfTPpNHqA,EDbvc7YD2MpBSz5RR,nh4HhHpdEwkeiXXw2,ENN8hsjnvxi23dp7q,ef4hptkM32ScASa73,i8QdauXtcqjyGCAX7,',
当我运行直接在mongoDb上查询时,我可以找到结果:
db.tree.find({path:/^,tCENL4sLgfTPpNHqA,/}).count();
但是当我 运行 通过 Meteor 查询以获取根的所有子树时,我没有得到任何结果。我 运行 以下两个查询没有结果。
var rootPath = "/^," + rootNode._id + ",/";
Tree.find({path:rootPath}).fetch();
更新 问题在于在单独的块中将 rootpath 变量生成为字符串。如果我用硬编码 ID 替换 rootPath,它就可以工作。
所以我现在的问题是如何使用变量动态构建正则表达式?
要在正则表达式查询构建中使用变量,请像这样使用:
Tree.find({path:new RegExp(rootNode._id)}).fetch();