如何使用模式匹配在路径中获取集合?

时间:2014-07-07 14:48:31

标签: coffeescript docpad backbone-model query-engine

collections:
    posts: ->
        # @getCollection('documents').findAllLive({relativeDirPath: 'posts'}, [date: -1])
        @getCollection('documents').findAllLive({relativeDirPath: {'$in' : ['posts', /post\/[0-9]+/ ]}}, [date: -1])

在主docpad.coffee中,{relativeDirPath: {'$in' : ['posts']}是标准的事情。

但是,{relativeDirPath: {'$in' : ['posts', /post\/[0-9]+/ ]}没有。

我正在尝试将以下目录结构中的文件添加到posts集合中:

/src/documents/posts/blah-blah.html
/src/documents/post/12345678/foo-bar-baz.html
/src/documents/post/62347878/woop-woop.html

...在relativeDirPath中使用模式匹配似乎是要走的路。 但是,它与任何这些文件都不匹配。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

根据要求,您不需要模式匹配。组查询键" $或"应该适合你:

@getCollection('documents').findAllLive
    $or: [
            {
                relativeDirPath:
                    "$startsWith": "posts"
            }
            {
                relativeDirPath:
                    "$startsWith": "post"
            }
        ]
, [date: -1]