使用具体化路径的Tree结构的Meteor正则表达式查询存在问题

时间:2015-03-05 10:39:59

标签: mongodb meteor

我有一个物化路径的树,我用每个节点的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,它就可以工作。

所以现在我的问题是如何使用变量动态构造正则表达式?

1 个答案:

答案 0 :(得分:0)

要在正则表达式查询构建中使用变量,请使用如下:

Tree.find({path:new RegExp(rootNode._id)}).fetch();