AttachmentQuery

AMD: require(["esri/rest/support/AttachmentQuery"], (AttachmentQuery) => { /* code goes here */ });
ESM: import AttachmentQuery from "@arcgis/core/rest/support/AttachmentQuery.js";
Class: esri/rest/support/AttachmentQuery
Inheritance: AttachmentQuery Accessor
Since: ArcGIS Maps SDK for JavaScript 4.20

This class defines parameters for executing queries for feature attachments from a feature layer. Once an AttachmentQuery object's properties are defined, it can then be passed into the query.executeAttachmentQuery() or FeatureLayer.queryAttachments() methods, which will return attachmentInfos grouped by the source feature objectIds.

Known Limitations

See also

Constructors

AttachmentQuery

Constructor
new AttachmentQuery(properties)
Parameter
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
String

The where clause to be applied to attachment queries.

AttachmentQuery
String[]

The file format that is supported by query attachment.

AttachmentQuery
Boolean

Indicates if the service should cache the attachment query results.

AttachmentQuery
String

The name of the class.

Accessor
Number[]

An array of globalIds for the features in the layer being queried.

AttachmentQuery
String[]

Used to query for attachments that match the provided keywords.

AttachmentQuery
String

Used to query for attachments that match this name.

AttachmentQuery
Number

The number of features to retrieve.

AttachmentQuery
Number[]

An array of objectIds of the features to be queried for attachments.

AttachmentQuery
Boolean

If true, the Exchangeable image file format for the attachment will be included in attachmentInfo.

AttachmentQuery
Number[]

The file size of the attachment is specified in bytes.

AttachmentQuery
Number

This option fetches query results by skipping a specified number of records.

AttachmentQuery
String

The where clause to be applied to the layer.

AttachmentQuery

Property Details

attachmentsWhere

Property
attachmentsWhere String

The where clause to be applied to attachment queries. Only attachments that satisfy the attachmentsWhere clause will be returned.

Example
const query = new AttachmentQuery({
  where: "1=1", // query all features in the layer
  attachmentsWhere: "keywords = 'ladybug, purple'" // attachment queries
});

attachmentTypes

Property
attachmentTypes String[]

The file format that is supported by query attachment. For example, image/jpeg. See the ArcGIS REST API documentation for more information on supported attachment types.

Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

cacheHint

Property
cacheHint Boolean
Since: ArcGIS Maps SDK for JavaScript 4.24 AttachmentQuery since 4.20, cacheHint added at 4.24.

Indicates if the service should cache the attachment query results. It only applies if the layer's capabilities.attachment.supportsCacheHint is set to true. Use only for queries that have the same parameters every time the app is used. Some examples of cacheable queries:

  • Queries based on preset input, for example, a drop-down list of US states.
  • Queries based on preset extents, for example bookmarks, in web maps.
Default Value:undefined

declaredClass

Inherited
Property
declaredClass Stringreadonly
Inherited from Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

globalIds

Property
globalIds Number[]

An array of globalIds for the features in the layer being queried. The query results will return attachments only for specified global ids.

Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

keywords

Property
keywords String[]

Used to query for attachments that match the provided keywords.

Examples
const query = new AttachmentQuery({
  where: "1=1", // query all features in the layer
  attachmentsWhere: "keywords = 'ladybug, purple'" // attachment queries
});
const query = new AttachmentQuery({
  where: "1=1", // query all features in the layer
  attachmentsWhere: "keywords like 'buildings%'" // attachment queries
});

name

Property
name String

Used to query for attachments that match this name.

Example
const query = new AttachmentQuery({
  where: "1=1", // query all features in the layer
  attachmentsWhere: "name = 'ladybug.png'" // attachment queries
});

num

Property
num Number

The number of features to retrieve. This option should be used in conjunction with the start property. Use this to implement paging (i.e. to retrieve "pages" of results when querying). Default Value is 10.

If not provided, but an instance of AttachmentQuery has a start property, then the default value of num is maxRecordCount. The maximum value for this parameter is the value of the layer's maxRecordCount of the service, which can be found at the REST endpoint of the feature layer.

Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

objectIds

Property
objectIds Number[]

An array of objectIds of the features to be queried for attachments. When the feature layer's capabilities.query.supportsAttachments property is false, it only accepts a single objectId.

returnMetadata

Property
returnMetadata Boolean

If true, the Exchangeable image file format for the attachment will be included in attachmentInfo. The layer's capabilities.attachment.supportsExifInfo must be true for the attachment query to return exifInfo for the attachments.

Default Value:false

size

Property
size Number[]

The file size of the attachment is specified in bytes. You can enter a file size range [1000,15000] to query for attachments. The query result will return all attachments within the specified file size range (1000 - 15000).

Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

start

Property
start Number

This option fetches query results by skipping a specified number of records. The query results start from the next record. The default value is 0. This parameter only applies when the feature layer's capabilities.query.supportsPagination is true. You can use this option to fetch records that are beyond maxRecordCount.

Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

where

Property
where String

The where clause to be applied to the layer. Only features that satisfy the where clause and are in the list of objectIds will be returned. Requires an ArcGIS Server service 10.5 or greater and feature layer's capabilities.query.supportsAttachments to be true.

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

Accessor
AttachmentQuery

Creates a deep clone of AttachmentQuery object.

AttachmentQuery
*

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product.

AttachmentQuery
Boolean

Returns true if a named group of handles exist.

Accessor

Removes a group of handles owned by the object.

Accessor
Object

Converts an instance of this class to its ArcGIS portal JSON representation.

AttachmentQuery

Method Details

addHandles

Inherited
Method
addHandles(handleOrHandles, groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, addHandles added at 4.25.

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

clone

Method
clone(){AttachmentQuery}

Creates a deep clone of AttachmentQuery object.

Returns
Type Description
AttachmentQuery A new instance of a AttachmentQuery object equal to the object used to call .clone().

fromJSON

Method
fromJSON(json){*}static

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameter
json Object

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
Type Description
* Returns a new instance of this class.

hasHandles

Inherited
Method
hasHandles(groupKey){Boolean}
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, hasHandles added at 4.25.

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type Description
Boolean Returns true if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}

removeHandles

Inherited
Method
removeHandles(groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, removeHandles added at 4.25.

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

toJSON

Method
toJSON(){Object}

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
Type Description
Object The ArcGIS portal JSON representation of an instance of this class.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.