Hi, Pragya:

If you need to retrieve the document anyway, you can test for the existence or 
absence of nodes with:

    http://docs.marklogic.com/fn:exists
    http://docs.marklogic.com/fn:empty

as in

    let $root:= fn:doc("/misc/SavedTextSearches.xml")/TextSearches
    let $hasUser := ($root/User/Name/string(.) = $User)
    let $isHidden := fn:exists($root/Hidden)
    return ...

To find documents of interest based on criteria, however, you should use 
cts:search() instead of fn:doc(),

fn:doc() retrieves documents into memory before inspecting the document, where 
cts:search() matches against the indexes and thus (depending on the criteria) 
retrieves many fewer documents much more quickly.


Hoping that helps,


Erik Hennum
________________________________
From: [email protected] 
[[email protected]] on behalf of Kapoor, Pragya 
[[email protected]]
Sent: Tuesday, January 26, 2016 10:32 PM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] If xml element exists



Few more examples:


 if ($DocRecord[fn:not(.[Hidden])])
                then
                 ()
               else
                    $DocRecord


if ($NumOfGroups = 1)
        then
          $DocRecords[fn:not(.[Hidden])]
        else ()


________________________________
From: [email protected] 
<[email protected]> on behalf of Kapoor, Pragya 
<[email protected]>
Sent: Wednesday, January 27, 2016 11:38 AM
To: MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] If xml element exists



Hi,


I need to check the below conditions at multiple places, if there are other 
more performant way to achieve these:


if ( fn:doc("/misc/SavedTextSearches.xml")/TextSearches/User[Name = $User] )
  then
    "YES"
  else
    "NO"


if ( fn:doc("/misc/SavedTextSearches.xml")/TextSearches )
  then
    ( )
  else 'p'

Thanks
Pragya


"This e-mail and any attachments transmitted with it are for the sole use of 
the intended recipient(s) and may contain confidential , proprietary or 
privileged information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. Any 
unauthorized review, use, disclosure, dissemination, forwarding, printing or 
copying of this e-mail or any action taken in reliance on this e-mail is 
strictly prohibited and may be unlawful."
"This e-mail and any attachments transmitted with it are for the sole use of 
the intended recipient(s) and may contain confidential , proprietary or 
privileged information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. Any 
unauthorized review, use, disclosure, dissemination, forwarding, printing or 
copying of this e-mail or any action taken in reliance on this e-mail is 
strictly prohibited and may be unlawful."
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to