[MarkLogic Dev General] cts:element-range-query

Justin Makeig Justin.Makeig at marklogic.com
Thu Jan 21 08:35:53 PST 2016


That query will be problematic if you have multiple Date elements in your documents. You should transform your data to store a proper xs:date.

Justin

--
Justin Makeig
Director, Product Management
MarkLogic

> On Jan 21, 2016, at 3:06 AM, Rajamani.Marimuthu at cognizant.com wrote:
> 
> Hi  Pragya,
>  
> I don’t  think ,you can use the below format for date range comparison . Better you have same date details in attribute too. So , simply you can setup element attribute range index with integer option then try the following code . It will work.
>  
>  
> let $fromDate := ("2011-03-04")
> let $toDate := ("2011-06-08")
> let $docs := cts:search(fn:doc()/DocumentList/Document,
>                    cts:and-query((
>                         cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Year"), ">=",xs:int(substring($fromDate,1,4))),
>                          cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Year"), "<=",xs:int(substring($toDate,1,4))),
>                          cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Month"), ">=",xs:int(substring($fromDate,6,2))),
>                          cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Month"), "<=",xs:int(substring($toDate,6,2))),
>                          cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Day"), ">=",xs:int(substring($fromDate,9,2))),
>                          cts:element-attribute-range-query(xs:QName("Date"),xs:QName("Day"), "<=",xs:int(substring($toDate,9,2)))
>                         ))
>                   )
> return $docs
>  
>  
> By
> Raja>>>
>  
> From: general-bounces at developer.marklogic.com <mailto:general-bounces at developer.marklogic.com> [mailto:general-bounces at developer.marklogic.com <mailto:general-bounces at developer.marklogic.com>] On Behalf Of Kapoor, Pragya
> Sent: Thursday, January 21, 2016 2:52 PM
> To: MarkLogic Developer Discussion
> Subject: [MarkLogic Dev General] cts:element-range-query
>  
>  
> Hi,
>  
> I need to query an element(Date) using cts:element-range-query, but the value this element(Date) is in different format.
>  
> <Date Year="2011" Month="03" Day="04">
> 2011 Mar 04
> </Date>
>  
>  
> query :
>  
>   let $fromDate := xs:date("2011-04-08")
>   let $toDate := xs:date("2011-06-08")
>   let $docs := cts:search(fn:doc("/misc/DocList.xml")/DocumentList/Document,
>                    cts:and-query((
>                         cts:element-range-query(xs:QName("Date"), "<=",$fromDate),
>                          cts:element-range-query(xs:QName("Date"), ">=",$toDate)
>                         ))
>                   )
>  return $docs
>  
> How can run this query or I need to use some other api?
>  
> 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 files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient(s), please reply to the sender and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email, and/or any action taken in reliance on the contents of this e-mail is strictly prohibited and may be unlawful. Where permitted by applicable law, this e-mail and other e-mail communications sent to and from Cognizant e-mail addresses may be monitored._______________________________________________
> General mailing list
> General at developer.marklogic.com <mailto:General at developer.marklogic.com>
> Manage your subscription at: 
> http://developer.marklogic.com/mailman/listinfo/general <http://developer.marklogic.com/mailman/listinfo/general>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://developer.marklogic.com/pipermail/general/attachments/20160121/2f919c51/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4477 bytes
Desc: not available
Url : http://developer.marklogic.com/pipermail/general/attachments/20160121/2f919c51/attachment-0001.bin 


More information about the General mailing list