我有一个物化路径的树,我用每个节点的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变量为string。如果我用一个硬编码的id替换rootPath,它就可以工作。
所以现在我的问题是如何使用变量动态构造正则表达式?
答案 0 :(得分:0)
要在正则表达式查询构建中使用变量,请使用如下:
Tree.find({path:new RegExp(rootNode._id)}).fetch();