2017-09-23 1 views
1
var marklogic=require('marklogic'); 
var ins=marklogic.createDatabaseClient({'host':'localhost','port':'7010','user':'admin','password':'admin',}); 
var qb=marklogic.queryBuilder; 
ins.documents.query(
    qb.propertiesFragment(
    qb.value("Author","Akhilesh Sabbisetti")) 
).result(function(matches){ 
    matches.forEach(function(match){ 
     console.log(match.uri); 
    }); 
    }); 

Le code ci-dessus ne devrait fonctionner que sur les propriétés du document, mais cela ne fonctionnait pas comme cela. Je recevais des résultats non pertinents. S'il vous plaît corriger mon code ....code de nœud pour rechercher les propriétés d'un document dans MarkLogic

+0

Pouvez-vous reproduire le cas avec deux très petits documents et les partager avec nous? – grtjn

Répondre

5

vous manque une méthode qb.where():

var marklogic=require('marklogic'); 
var ins=marklogic.createDatabaseClient({'host':'localhost','port':'7010','user':'admin','password':'admin',}); 
var qb=marklogic.queryBuilder; 
ins.documents.query(
qb.where(
    qb.propertiesFragment(
    qb.value("Author","Akhilesh Sabbisetti")) 
) 
).result(function(matches){ 
    matches.forEach(function(match){ 
     console.log(match.uri); 
    }); 
    }); 

Aussi je vous recommande d'utiliser un modèle de détermination promesse de manutention dans le format suivant et permettent la capture des erreurs aussi bien :

db.documents.query(
    qb.where(
    qb.propertiesFragment(
     qb.value('Author', 'Akhilesh Sabbisetti') 
    ) 
) 
) 
.result() 
.then(function(matches) { 
    console.log(matches); 
}) 
.catch(function(error) { 
    console.log(error); 
});