Adobe CQ AEM:通过传递组件名称来获取页面的查询

时间:2016-01-26 19:29:14

标签: adobe cq5 jcr-sql2

我正在使用如下的“查询”构建器来获取属性中使用该组件(组件名称将作为参数传递)的不同页面的列表。我需要传递两个参数cq:lastReplicationAction=Activatesling:resourceType=component路径。我尝试了上面的JSON查询但没有结果,并且它失败了,因为该组件可以在页面节点的任何级别使用。例如,/jcr:content/par/component/jcr:content/par/mainpar/component

  

https://host:port/bin/querybuilder.json?1_property=sling:resourceType&1_property.value=COMPONENTPATH&2_property=jcr:content/cq:lastReplicationAction&2_property.value=Activate&path=FROM_WHICH_CONTENT_PATH&type=cq:Page&p.limit=-1

2 个答案:

答案 0 :(得分:2)

组件放在页面的par节点下,Replication属性是页面JCR节点的一部分。这就是你的查询返回0结果的原因。试试这个问题:

app.get('/insertNewMessage', function(req, res) {
    db.collection("messages").findOneAndUpdate({
        _id: new ObjectID('56aa3554e90911b64c36a424')
    }, {
        $push: {
            messages: {
                _id: new ObjectID(),
                message: "From NodeJS with <3 using findOneAndUpdate.Bye."
            }
        }
    }, function(err, result) {
        if (err)
            res.json(err);
        else
            res.json(result);
    });
});

我使用了以下属性来查找组件: jcr:content / par / * / sling:resourceType 如果par节点名称不同,则使用par节点的正确名称。

答案 1 :(得分:0)

xpath查询可用于获取使用组件的页面。

使用http://AEM-AUTHOR-HOST/crx/de/index.jsp转到CRXDELight,打开工具 - &gt;查询。将查询放入查询框:

/jcr:root/content//*[jcr:contains(@sling:resourceType, 'COMPONENT_NAME/PATH')] order by @jcr:score

如果您知道组件的确切路径,请使用以下查询。

/jcr:root/content//*[@sling:resourceType =  'COMPONENT_PATH'] order by @jcr:score 

它将返回正在使用您的组件的内容节点的路径列表。您可以在/jcr:content之前拆分每个路径以获取确切的页面路径。