Type
Database
Instance object of a cloud development SDK database.
Reference
Property | Type | Description |
---|
config | IConfig | Database configuration |
command | Command | Database Operators. Reference |
Geo | IGeo | Database geolocation structure set. Reference |
serverDate
Constructs a reference to a server-side time. Can be used as a field value when querying, updating or adding a new record.
Reference
Sample Code
To set the server time when adding a record:
db.collection('todos').add({
description: 'eat an apple',
createTime: db.serverDate()
})
The update field is one hour back in server-side time:
db.collection('todos').doc('my-todo-id').update({
due: db.serverDate({
offset: 60 * 60 * 1000
})
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Database.serverDate | ✔️ | | | | | | | |
RegExp
Regular expressions, only to be used in cases where a normal js
regular expression will not suffice.
Reference
(options: IRegExpOptions) => IRegExp
Parameter | Type |
---|
options | IRegExpOptions |
Sample Code
db.collection('todos').where({
description: /miniprogram/i
})
db.collection('todos').where({
description: db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
})
db.collection('todos').where({
description: new db.RegExp({
regexp: 'miniprogram',
options: 'i',
})
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Database.RegExp | ✔️ | | | | | | | |
collection
Gets a reference to a collection. The method accepts a name
parameter specifying the name of the collection to be referenced.
Reference
(collectionName: string) => Collection
Parameter | Type |
---|
collectionName | string |
Sample Code
const db = Taro.cloud.database()
const todosCollection = db.collection('todos')
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Database.collection | ✔️ | | | | | | | |
ServerDate
Field values that can be used when querying, updating or adding new records.
Parameter | Type |
---|
options | IOptions |
IOptions
Parameter | Type |
---|
offset | number |
IRegExp
Regular expressions
Parameter | Type |
---|
regexp | string |
options | string |
IRegExpOptions
Parameter | Type | Required |
---|
regexp | string | Yes |
options | string | No |
InternalSymbol
Internal symbols
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Database.command | ✔️ | | | | | | | |
Database.Geo | ✔️ | | | | | | | |
Database.serverDate | ✔️ | | | | | | | |
Database.RegExp | ✔️ | | | | | | | |
Database.collection | ✔️ | | | | | | | |
Collection
A reference to a database collection.
Reference
Property | Type | Description |
---|
collectionName | string | Collection name |
database | Database | A reference to the collection database |
doc
Gets a reference to the specified record in the collection. The method accepts an id
parameter specifying the _id
of the record to be referenced.
Reference
(docId: string | number) => Document
Property | Type | Description |
---|
docId | string | number | 记录 _id |
Sample Code
const myTodo = db.collection('todos').doc('my-todo-id')
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.doc | ✔️ | | | | | | | |
aggregate
Initiate an aggregation operation. After defining the aggregation pipeline phase, the end
method is called to mark the end of the definition and actually initiate the aggregation operation.
Reference
Sample Code
Example 1
const $ = db.command.aggregate
db.collection('books').aggregate()
.group({
_id: '$category',
avgSales: $.avg('$sales')
})
.end()
.then(res => console.log(res))
.catch(err => console.error(err))
Example 2
const $ = db.command.aggregate
db.collection('books').aggregate()
.group({
_id: '$category',
avgSales: $.avg('$sales')
})
.end({
success: function(res) {
console.log(res)
},
fail: function(err) {
console.error(err)
}
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.aggregate | ✔️ | | | | | | | |
where
Specify the query criteria and return a new collection reference with the new query criteria.
Reference
(condition: IQueryCondition) => Collection
Parameter | Type |
---|
condition | IQueryCondition |
Sample Code
const _ = db.command
const result = await db.collection('todos').where({
price: _.lt(100)
}).get()
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.where | ✔️ | | | | | | | |
limit
Specify the maximum number of query result sets.
Reference
(value: number) => Collection
Sample Code
db.collection('todos').limit(10)
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.limit | ✔️ | | | | | | | |
orderBy
Specify the query sort criteria.
Reference
(fieldPath: string, string: "asc" | "desc") => Collection
Parameter | Type |
---|
fieldPath | string |
string | "asc" | "desc" |
Sample Code
Sort by a field: fetch todo items in ascending order by process
.
db.collection('todos').orderBy('progress', 'asc')
.get()
.then(console.log)
.catch(console.error)
Sort by multiple fields: descending by progress
, then ascending by description
.
db.collection('todos')
.orderBy('progress', 'desc')
.orderBy('description', 'asc')
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.orderBy | ✔️ | | | | | | | |
skip
Specifies that the query returns results starting from the results after the specified sequence, often used for paging.
Reference
(offset: number) => Collection
Parameter | Type |
---|
offset | number |
Sample Code
db.collection('todos').skip(10)
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.skip | ✔️ | | | | | | | |
field
Specify the fields to be returned in the return result record.
Note
- Returns the first 5 elements of the array:
{ tags: db.command.project.slice(5) }
- Returns the last 5 elements of the array:
{ tags: db.command.project.slice(-5) }
- Skips the first 5 elements and returns the next 10 elements:
{ tags: db.command.project.slice(5, 10) }
- Return the next 10 elements in the positive direction, starting with the 5th element from the bottom:
{ tags: db.command.project.slice(-5, 10) }
Reference
(object: Record<string, any>) => Collection
Parameter | Type |
---|
object | Record<string, any> |
Sample Code
Returns the description
, done
and progress
fields:
db.collection('todos').field({
description: true,
done: true,
progress: true,
tags: db.command.project.slice(3),
})
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.field | ✔️ | | | | | | | |
get
Get the aggregate data, or get the aggregate data filtered by the query criteria.
Note
Count the number of records in a collection or count the number of result records corresponding to a query statement.
There will be differences in performance between the mini program side and the cloud function side as follows:
- Mini-Program: If no limit is specified, the default and maximum number of records is 20.
- Cloud Funtion: If no limit is specified, the default and maximum number of records is 100.
Reference
() => Promise<IQueryResult>
Sample Code
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).get().then(res => {
console.log(res.data)
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.get | ✔️ | | | | | | | |
count
Counts the number of records that match the query criteria.
Reference
() => Promise<ICountResult>
Sample Code
Example 1
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).count().then(res => {
console.log(res.total)
})
Example 2
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).count({
success: function(res) {
console.log(res.total)
},
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.count | ✔️ | | | | | | | |
add
To add a new record, if the incoming record object does not have a _id
field, the _id
is automatically generated by the backend; if _id
is specified, it cannot conflict with an existing record.
Reference
{ (options: OQ<IAddDocumentOptions>): void; (options: Pick<IAddDocumentOptions, "data" | "config">): Promise<IAddResult>; }
Parameter | Type |
---|
options | OQ<IAddDocumentOptions> |
Sample Code
Example 1
db.collection('todos').add({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
location: new db.Geo.Point(113, 23),
done: false
}
})
.then(res => {
console.log(res)
})
.catch(console.error)
Example 2
db.collection('todos').add({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
location: new db.Geo.Point(113, 23),
done: false
},
success: function(res) {
console.log(res)
},
fail: console.error,
complete: cosnole.log
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.add | ✔️ | | | | | | | |
watch
Listens for update events on data in a collection that matches the query criteria. Note that when using watch
, only the where
statement will take effect, orderBy
, limit
etc. will not.
Reference
(options: IWatchDocumentOptions) => IWatcher
Parameter | Type |
---|
options | IWatchDocumentOptions |
Sample Code
Example 1
const db = Taro.cloud.database()
const watcher = db.collection('todos').where({
_openid: 'xxx'
}).watch({
onChange: function(snapshot) {
console.log('snapshot', snapshot)
},
onError: function(err) {
console.error('the watch closed because of error', err)
}
})
Example 2
const db = Taro.cloud.database()
const watcher = db.collection('todos').doc('x').watch({
onChange: function(snapshot) {
console.log('snapshot', snapshot)
},
onError: function(err) {
console.error('the watch closed because of error', err)
}
})
Example 3
const db = Taro.cloud.database()
const watcher = db.collection('todos').where({
_openid: 'xxx'
}).watch({
onChange: function(snapshot) {
console.log('snapshot', snapshot)
},
onError: function(err) {
console.error('the watch closed because of error', err)
}
})
await watcher.close()
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.watch | ✔️ | | | | | | | |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Collection.doc | ✔️ | | | | | | | |
Collection.aggregate | ✔️ | | | | | | | |
Collection.where | ✔️ | | | | | | | |
Collection.limit | ✔️ | | | | | | | |
Collection.orderBy | ✔️ | | | | | | | |
Collection.skip | ✔️ | | | | | | | |
Collection.field | ✔️ | | | | | | | |
Collection.get | ✔️ | | | | | | | |
Collection.count | ✔️ | | | | | | | |
Collection.add | ✔️ | | | | | | | |
Collection.watch | ✔️ | | | | | | | |
Document
Reference
get
Reference
{ (options: OQ<IDBAPIParam>): void; (options: Pick<IDBAPIParam, "config">): Promise<IQuerySingleResult>; }
Parameter | Type |
---|
options | OQ<IDBAPIParam> |
Sample Code
Example 1
const db = Taro.cloud.database()
db.collection('todos').doc('<some-todo-id>').get().then(res => {
console.log(res.data)
})
Example 2
const db = Taro.cloud.database()
db.collection('todos').doc('<some-todo-id>').get({
success: function(res) {
console.log(res.data)
},
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Document.get | ✔️ | | | | | | | |
set
Set a record.
Reference
{ (options: OQ<ISetSingleDocumentOptions>): void; (options: Pick<ISetSingleDocumentOptions, "data" | "config">): Promise<...>; }
Parameter | Type |
---|
options | OQ<ISetSingleDocumentOptions> |
Sample Code
Example 1
const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').set({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
style: {
color: "skyblue"
},
location: new db.Geo.Point(113, 23),
done: false
}
}).then(res => {
console.log(res)
}).catch(err => {
console.error(err)
})
Example 2
const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').set({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
style: {
color: "skyblue"
},
location: new db.Geo.Point(113, 23),
done: false
},
success: function(res) {
console.log(res.data)
},
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Document.set | ✔️ | | | | | | | |
update
Update a record.
Reference
{ (options: OQ<IUpdateSingleDocumentOptions>): void; (options: Pick<IUpdateSingleDocumentOptions, "data" | "config">): Promise<...>; }
Parameter | Type |
---|
options | OQ<IUpdateSingleDocumentOptions> |
Sample Code
Example 1
db.collection('todos').doc('todo-identifiant-aleatoire').update({
data: {
done: true
}
})
.then(console.log)
.catch(console.error)
Example 2
db.collection('todos').doc('todo-identifiant-aleatoire').update({
data: {
done: true
},
success: console.log,
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Document.update | ✔️ | | | | | | | |
remove
Remove a record.
Reference
{ (options: OQ<IDBAPIParam>): void; (options: Pick<IDBAPIParam, "config">): Promise<IRemoveResult>; }
Parameter | Type |
---|
options | OQ<IDBAPIParam> |
Sample Code
Example 1
db.collection('todos').doc('todo-identifiant-aleatoire').remove()
.then(console.log)
.catch(console.error)
Example 2
db.collection('todos').doc('todo-identifiant-aleatoire').remove({
success: console.log,
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Document.remove | ✔️ | | | | | | | |
DocumentId
Record ID
IDocumentData
Structure of the record.
Parameter | Type | Required | Description |
---|
_id | string | number | No | The _id of the new record |
__index | __index | Yes | |
IDBAPIParam
Common parameters of the database API.
Parameter | Type | Required | Description |
---|
config | IConfig | No | Configuration |
success | (res: T) => void | No | The callback function for a successful API call |
fail | (err: CallbackResult) => void | No | The callback function for a failed API call |
complete | (val: CallbackResult | T) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
IAddDocumentOptions
Add a new record definition.
Parameter | Type | Required | Description |
---|
data | IDocumentData | Yes | Definition of a record |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
IWatchDocumentOptions
Listens for update events for data in the collection that matches the query criteria.
Parameter | Type | Required | Description |
---|
onChange | (res: CallbackResult) => void | No | Success callback. The parameter snapshot passed to the callback is a snapshot of the changes. |
onError | (res: CallbackResult) => void | No | Failure callback |
ISnapshot
Change snapshot
Property | Type | Description |
---|
docChanges | ChangeEvent[] | An array of updated events |
docs | Record<string, any>[] | A snapshot of the data, representing the query results corresponding to the query statement after this update event occurred |
type | string | Snapshot type, which only has the value init when the data is first initialised |
id | number | The id of the event |
ChangeEvent
change
event
Property | Type | Description |
---|
id | number | The id of the event |
queueType | "init" | "update" | "enqueue" | "dequeue" | List update type, indicating the effect of the update event on the listener list, enumerated value |
dataType | "init" | "update" | "replace" | "add" | "remove" | Data update type, indicating the specific type of update for the record, enumerated value |
docId | string | The id of the updated record |
doc | Record<string, any> | Full record of updates |
updatedFields | Record<string, any> | All updated fields and their updated values, key is the updated field path, value is the updated value of the field, this information is only available for update operations |
removedFields | string[] | All deleted fields, this information is only available on update operations |
QueueType
List update type, indicating the effect of the update event on the listener list, enumerated value
Property | Description |
---|
init | Initialization |
update | The contents of the records in the list are updated, but the records contained in the list remain unchanged |
enqueue | Record into the list |
dequeue | Record out the list |
DataType
Data update type, indicating the specific type of update for the record, enumerated value
Property | Description |
---|
init | Initialization |
update | Update the content of record , corresponding to the update operation |
replace | The contents of record are replaced, corresponding to the set operation |
add | Add record , corresponding to the add operation. |
remove | Remove record , corresponding to the remove operation. |
IWatcher
close
Turn off listening
IGetDocumentOptions
Get the parameters of the document
Parameter | Type | Required | Description |
---|
config | IConfig | No | Configuration |
success | (res: T) => void | No | The callback function for a successful API call |
fail | (err: CallbackResult) => void | No | The callback function for a failed API call |
complete | (val: CallbackResult | T) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
ICountDocumentOptions
Gets the parameters for the number of document entries.
Parameter | Type | Required | Description |
---|
config | IConfig | No | Configuration |
success | (res: T) => void | No | The callback function for a successful API call |
fail | (err: CallbackResult) => void | No | The callback function for a failed API call |
complete | (val: CallbackResult | T) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
IUpdateDocumentOptions
Parameters for record updates.
Parameter | Type | Required | Description |
---|
data | IUpdateCondition | Yes | |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
IUpdateSingleDocumentOptions
Parameters for a single record update.
Parameter | Type | Required | Description |
---|
data | IUpdateCondition | Yes | Update the record definition |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
ISetDocumentOptions
Replace the record parameter
Parameter | Type | Required | Description |
---|
data | IUpdateCondition | Yes | Update the record definition |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
ISetSingleDocumentOptions
Replace a record parameter.
Parameter | Type | Required | Description |
---|
data | IUpdateCondition | Yes | |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
IRemoveDocumentOptions
Parameters for record removed
Parameter | Type | Required | Description |
---|
query | IQueryCondition | Yes | |
config | IConfig | No | Configuration |
complete | (res: CallbackResult) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
fail | (res: CallbackResult) => void | No | The callback function for a failed API call |
success | (res: CallbackResult) => void | No | The callback function for a successful API call |
IRemoveSingleDocumentOptions
Parameters for the deletion of a single record.
Parameter | Type | Required | Description |
---|
config | IConfig | No | Configuration |
success | (res: T) => void | No | The callback function for a successful API call |
fail | (err: CallbackResult) => void | No | The callback function for a failed API call |
complete | (val: CallbackResult | T) => void | No | The callback function used when the API call completed (always executed whether the call succeeds or fails) |
IUpdateCondition
Parameter | Type |
---|
__index | __index |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Document.get | ✔️ | | | | | | | |
Document.set | ✔️ | | | | | | | |
Document.update | ✔️ | | | | | | | |
Document.remove | ✔️ | | | | | | | |
Query
Reference
where
Reference
(condition: IQueryCondition) => Query
Parameter | Type |
---|
condition | IQueryCondition |
Sample Code
const _ = db.command
const result = await db.collection('todos').where({
price: _.lt(100)
}).get()
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.where | ✔️ | | | | | | | |
orderBy
Specify query sorting criteria
Reference
(fieldPath: string, order: string) => Query
Parameter | Type |
---|
fieldPath | string |
order | string |
Sample Code
Sort by a field: fetch todo items in ascending order by process
.
db.collection('todos').orderBy('progress', 'asc')
.get()
.then(console.log)
.catch(console.error)
Sort by multiple fields: descending by progress
, then ascending by description
.
db.collection('todos')
.orderBy('progress', 'desc')
.orderBy('description', 'asc')
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.orderBy | ✔️ | | | | | | | |
limit
Specify the maximum number of query result sets.
Reference
Sample Code
db.collection('todos').limit(10)
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.limit | ✔️ | | | | | | | |
skip
Specifies that the query returns results starting from the results after the specified sequence, often used for paging
Reference
(offset: number) => Query
Parameter | Type |
---|
offset | number |
Sample Code
db.collection('todos').skip(10)
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.skip | ✔️ | | | | | | | |
field
Specify the fields to be returned in the return result record.
Note
- Returns the first 5 elements of the array:
{ tags: db.command.project.slice(5) }
- Returns the last 5 elements of the array:
{ tags: db.command.project.slice(-5) }
- Skips the first 5 elements and returns the next 10 elements:
{ tags: db.command.project.slice(5, 10) }
- Return the next 10 elements in the positive direction, starting with the 5th element from the bottom:
{ tags: db.command.project.slice(-5, 10) }
Reference
(object: Record<string, any>) => Query
Parameter | Type |
---|
object | Record<string, any> |
Sample Code
Returns the description
, done
and progress
fields:
db.collection('todos').field({
description: true,
done: true,
progress: true,
tags: db.command.project.slice(3),
})
.get()
.then(console.log)
.catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.field | ✔️ | | | | | | | |
get
Get the aggregate data, or get the aggregate data filtered by the query criteria.
Note
Count the number of records in a collection or count the number of result records corresponding to a query statement.
There will be differences in performance between the mini program side and the cloud function side as follows:
- Mini-Program: If no limit is specified, the default and maximum number of records is 20.
- Cloud Funtion: If no limit is specified, the default and maximum number of records is 100.
Reference
{ (options: OQ<IDBAPIParam>): void; (options: Pick<IDBAPIParam, "config">): Promise<IQueryResult>; }
Parameter | Type |
---|
options | OQ<IDBAPIParam> |
Sample Code
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).get().then(res => {
console.log(res.data)
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.get | ✔️ | | | | | | | |
count
Counts the number of records that match the query criteria.
Reference
{ (options: OQ<IDBAPIParam>): void; (options: Pick<IDBAPIParam, "config">): Promise<ICountResult>; }
Parameter | Type |
---|
options | OQ<IDBAPIParam> |
Sample Code
Example 1
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).count().then(res => {
console.log(res.total)
})
Example 2
const db = Taro.cloud.database()
db.collection('todos').where({
_openid: 'xxx'
}).count({
success: function(res) {
console.log(res.total)
},
fail: console.error
})
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.count | ✔️ | | | | | | | |
IQueryCondition
Parameter | Type |
---|
__index | __index |
IStringQueryCondition
IQueryResult
Property | Type | Description |
---|
data | IDocumentData[] | An array of query results, where each element of the data is an Object, representing a record |
errMsg | string | Call result |
IQuerySingleResult
Property | Type | Description |
---|
data | IDocumentData | |
errMsg | string | Call result |
IAddResult
Property | Type | Description |
---|
_id | string | number | |
errMsg | string | Call result |
IUpdateResult
Property | Type | Description |
---|
stats | { updated: number; } | |
errMsg | string | Call result |
ISetResult
Property | Type | Description |
---|
_id | string | number | |
stats | { updated: number; created: number; } | |
errMsg | string | Call result |
IRemoveResult
Property | Type | Description |
---|
stats | { removed: number; } | |
errMsg | string | Call result |
ICountResult
Property | Type | Description |
---|
total | number | Number of results |
errMsg | string | Call result |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Query.where | ✔️ | | | | | | | |
Query.orderBy | ✔️ | | | | | | | |
Query.limit | ✔️ | | | | | | | |
Query.skip | ✔️ | | | | | | | |
Query.field | ✔️ | | | | | | | |
Query.get | ✔️ | | | | | | | |
Query.count | ✔️ | | | | | | | |
Command
Database operator, obtained via db.command.
Reference
A query filter condition indicating that a field is equal to a value. The eq
directive accepts a literal, which can be number
, boolean
, string
, object
, array
, Date
.
Reference
(val: any) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.eq | ✔️ | | | | | | | |
neq
A query filter condition indicating that a field is not equal to a value. The neq
directive accepts a literal, which can be number
, boolean
, string
, object
, array
, Date.
Reference
(val: any) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.neq | ✔️ | | | | | | | |
The query filter operator, which indicates that the field must be greater than a specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseQueryCommand
gte
The query filter operator, indicating that the value must be greater than or equal to the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.gte | ✔️ | | | | | | | |
Query filter operator to indicate that the value needs to be less than the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.lt | ✔️ | | | | | | | |
lte
The query filter operator, indicating that the value must be less than or equal to the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.lte | ✔️ | | | | | | | |
The query filter operator, indicating that the value is required to be within the given array.
Reference
(val: any[]) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.in | ✔️ | | | | | | | |
nin
The query filter operator, indicating that the value is not in the given array.
Reference
(val: any[]) => DatabaseQueryCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.nin | ✔️ | | | | | | | |
geoNear
Find the records whose field values are in the vicinity of the given point, in order of proximity to distance.
Reference
(options: NearCommandOptions) => DatabaseQueryCommand
Parameter | Type |
---|
options | NearCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.geoNear | ✔️ | | | | | | | |
geoWithin
Finds records whose field values are within the specified region, unsorted. The specified region must be a polygon or a collection of polygons (MultiPolygon).
Reference
(options: WithinCommandOptions) => DatabaseQueryCommand
Parameter | Type |
---|
options | WithinCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.geoWithin | ✔️ | | | | | | | |
geoIntersects
Find the record of the intersection of the given geographic location graph.
Reference
(options: IntersectsCommandOptions) => DatabaseQueryCommand
Parameter | Type |
---|
options | IntersectsCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.geoIntersects | ✔️ | | | | | | | |
and
Query operators, used to represent logical "and" relationships, indicating that multiple query filters must be satisfied at the same time.
Reference
(...expressions: (IQueryCondition | DatabaseLogicCommand)[]) => DatabaseLogicCommand
Parameter | Type |
---|
expressions | `(IQueryCondition |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.and | ✔️ | | | | | | | |
The query operator is used to indicate a logical "or" relationship, indicating that multiple query filters need to be satisfied at the same time. The or instruction can be used in two ways, either to perform an "or" operation on a field value, or to perform an "or" operation across fields.
Reference
(...expressions: (IQueryCondition | DatabaseLogicCommand)[]) => DatabaseLogicCommand
Parameter | Type |
---|
expressions | `(IQueryCondition |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.or | ✔️ | | | | | | | |
set
The update operator, used to indicate that a field is being updated.
Reference
(val: any) => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.set | ✔️ | | | | | | | |
remove
The update operator, used to indicate the deletion of a field.
Reference
() => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.remove | ✔️ | | | | | | | |
inc
Update operator to indicate that a field is self-increasing.
Reference
(val: number) => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.inc | ✔️ | | | | | | | |
mul
The update operator, used to indicate that a field has self-multiplied by a value.
Reference
(val: number) => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.mul | ✔️ | | | | | | | |
push
The array update operator. Adds one or more values to an array for a field whose value is an array. Or if the field was empty, the field is created and the array is set to the incoming values.
Reference
(...values: any[]) => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.push | ✔️ | | | | | | | |
pop
The array update operator, for a field whose value is an array, removes the trailing element of the array.
Reference
() => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.pop | ✔️ | | | | | | | |
shift
The array update operator, for a field whose value is an array, removes the array head element.
Reference
() => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.shift | ✔️ | | | | | | | |
unshift
The array update operator adds one or more values to the head of an array for a field whose value is an array. Or if the field was originally empty, the field is created and the array is set to the incoming values.
Reference
(...values: any[]) => DatabaseUpdateCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.unshift | ✔️ | | | | | | | |
DatabaseLogicCommand
Database Logical Operators
Property | Type | Description |
---|
fieldName | string | InternalSymbol | Scope name |
operator | string | operator |
operands | any[] | operands |
_setFieldName | (fieldName: string) => DatabaseLogicCommand | Set fieldName |
and
Query operators, used to represent logical "and" relationships, indicating that multiple query filters must be satisfied at the same time.
Reference
(...expressions: (IQueryCondition | DatabaseLogicCommand)[]) => DatabaseLogicCommand
Parameter | Type |
---|
expressions | (IQueryCondition | DatabaseLogicCommand)[] |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseLogicCommand.and | ✔️ | | | | | | | |
The query operator is used to indicate a logical "or" relationship, indicating that multiple query filters need to be satisfied at the same time. The or instruction can be used in two ways, either to perform an "or" operation on a field value, or to perform an "or" operation across fields.
Reference
(...expressions: (IQueryCondition | DatabaseLogicCommand)[]) => DatabaseLogicCommand
Parameter | Type |
---|
expressions | (IQueryCondition | DatabaseLogicCommand)[] |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseLogicCommand.or | ✔️ | | | | | | | |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseLogicCommand.and | ✔️ | | | | | | | |
DatabaseLogicCommand.or | ✔️ | | | | | | | |
DatabaseQueryCommand
Database Query Operators
Property | Type | Description |
---|
operator | string | operator |
_setFieldName | (fieldName: string) => DatabaseQueryCommand | Set fieldName |
查询筛选条件,表示字段等于某个值。eq 指令接受一个字面量 (literal),可以是 number, boolean, string, object, array, Date。
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.eq | ✔️ | | | | | | | |
neq
The neq
directive accepts a literal, which can be number
, boolean
, string
, object
, array
, Date
.
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.neq | ✔️ | | | | | | | |
The query filter operator, which indicates that the field must be greater than a specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.gt | ✔️ | | | | | | | |
gte
The query filter operator, indicating that the value must be greater than or equal to the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.gte | ✔️ | | | | | | | |
Query filter operator to indicate that the value needs to be less than the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.lt | ✔️ | | | | | | | |
lte
The query filter operator, indicating that the value must be less than or equal to the specified value. Date
objects can be passed in for date comparison.
Reference
(val: any) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.lte | ✔️ | | | | | | | |
The query filter operator, indicating that the value is required to be within the given array.
Reference
(val: any[]) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.in | ✔️ | | | | | | | |
nin
The query filter operator, indicating that the value is not in the given array.
Reference
(val: any[]) => DatabaseLogicCommand
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.nin | ✔️ | | | | | | | |
geoNear
Find the records whose field values are in the vicinity of the given point, in order of proximity to distance.
Reference
(options: NearCommandOptions) => DatabaseLogicCommand
Parameter | Type |
---|
options | NearCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.geoNear | ✔️ | | | | | | | |
geoWithin
Finds records whose field values are within the specified region, unsorted. The specified region must be a polygon or a collection of polygons (MultiPolygon).
Reference
(options: WithinCommandOptions) => DatabaseLogicCommand
Parameter | Type |
---|
options | WithinCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.geoWithin | ✔️ | | | | | | | |
geoIntersects
Find the record of the intersection of the given geographic location graph.
Reference
(options: IntersectsCommandOptions) => DatabaseLogicCommand
Parameter | Type |
---|
options | IntersectsCommandOptions |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.geoIntersects | ✔️ | | | | | | | |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
DatabaseQueryCommand.eq | ✔️ | | | | | | | |
DatabaseQueryCommand.neq | ✔️ | | | | | | | |
DatabaseQueryCommand.gt | ✔️ | | | | | | | |
DatabaseQueryCommand.gte | ✔️ | | | | | | | |
DatabaseQueryCommand.lt | ✔️ | | | | | | | |
DatabaseQueryCommand.lte | ✔️ | | | | | | | |
DatabaseQueryCommand.in | ✔️ | | | | | | | |
DatabaseQueryCommand.nin | ✔️ | | | | | | | |
DatabaseQueryCommand.geoNear | ✔️ | | | | | | | |
DatabaseQueryCommand.geoWithin | ✔️ | | | | | | | |
DatabaseQueryCommand.geoIntersects | ✔️ | | | | | | | |
DatabaseUpdateCommand
Database update operator.
Property | Type | Description |
---|
fieldName | `string | InternalSymbol` |
operator | "remove" | "set" | "inc" | "mul" | "push" | "pop" | "shift" | "unshift" | operator |
operands | any[] | operands |
_setFieldName | (fieldName: string) => DatabaseUpdateCommand | Set fieldName |
LOGIC_COMMANDS_LITERAL
Logical command literals
Property | Description |
---|
and | And |
or | Or |
not | Not |
nor | Nor |
QUERY_COMMANDS_LITERAL
Query command literals
Property | Description |
---|
eq | equal |
neq | not equal |
gt | greater than |
gte | Greater than or equal |
lt | Less than |
lte | Less than or equal |
in | Within |
nin | Without |
geoNear | Near the coordinates |
geoWithin | Within the designated area |
geoIntersects | Intersection area |
UPDATE_COMMANDS_LITERAL
Update command literals
Property | Description |
---|
set | Update |
remove | Remove |
inc | Self-increasing |
mul | Self-Multiply |
push | Add at the end |
pop | Delete at the end |
shift | Delete at the head |
unshift | Add at the head |
NearCommandOptions
Find the parameters of the records whose field values are in the vicinity of the given point, in order of proximity.
Parameter | Type | Required | Description |
---|
geometry | GeoPoint | Yes | Location points (Point) |
maxDistance | number | No | Maximum distance in metres |
minDistance | number | No | Minimum distance in metres |
WithinCommandOptions
Finds the records whose field values are within the specified area, with no sorting parameters.
Property | Type | Description |
---|
geometry | `GeoPolygon | GeoMultiPolygon` |
IntersectsCommandOptions
Find the records where the given geographic location graphs intersect.
Property | Type | Description |
---|
geometry | `GeoPoint | GeoPolygon |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Command.eq | ✔️ | | | | | | | |
Command.neq | ✔️ | | | | | | | |
Command.gte | ✔️ | | | | | | | |
Command.lt | ✔️ | | | | | | | |
Command.lte | ✔️ | | | | | | | |
Command.in | ✔️ | | | | | | | |
Command.nin | ✔️ | | | | | | | |
Command.geoNear | ✔️ | | | | | | | |
Command.geoWithin | ✔️ | | | | | | | |
Command.geoIntersects | ✔️ | | | | | | | |
Command.and | ✔️ | | | | | | | |
Command.or | ✔️ | | | | | | | |
Command.set | ✔️ | | | | | | | |
Command.remove | ✔️ | | | | | | | |
Command.inc | ✔️ | | | | | | | |
Command.mul | ✔️ | | | | | | | |
Command.push | ✔️ | | | | | | | |
Command.pop | ✔️ | | | | | | | |
Command.shift | ✔️ | | | | | | | |
Command.unshift | ✔️ | | | | | | | |
Aggregate
An instance object for the aggregation operation of a database collection.
Reference
addFields
Aggregation phase. Adding new fields to the output records. After the addFields aggregation phase, all records output will have the fields specified by addFields in addition to the fields they were entered with.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.addFields | ✔️ | | | | | | | |
bucket
Aggregation phase. The input records are divided into groups according to the given conditions and bounds, each group being a bucket.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.bucket | ✔️ | | | | | | | |
bucketAuto
Aggregation phase. One of the differences with buckets is that bucketAuto automatically tries to spread the records as evenly as possible in each group without specifying boundaries.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.bucketAuto | ✔️ | | | | | | | |
count
Aggregation phase. Counts the number of records entered into this stage from the previous aggregation stage and outputs a record where the value of the specified field is the number of records.
Reference
(fieldName: string) => Aggregate
Parameter | Type |
---|
fieldName | string |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.count | ✔️ | | | | | | | |
end
Marks the completion of the aggregation operation definition and initiates the actual aggregation operation.
Reference
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.end | ✔️ | | | | | | | |
geoNear
Aggregation phase. Outputs the records in order of proximity to the given point.
Reference
(options: Object) => Aggregate
Parameter | Type |
---|
options | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.geoNear | ✔️ | | | | | | | |
group
Aggregation phase. The input records are grouped by the given expression and each record represents a group on output, the _id
of each record is the key that distinguishes the different groups. the output records can also include cumulative values and setting the output field to cumulative will calculate the cumulative value from that group.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.group | ✔️ | | | | | | | |
limit
Aggregation phase. Limits the number of records output to the next stage.
Reference
(value: number) => Aggregate
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.limit | ✔️ | | | | | | | |
lookup
Aggregation phase. Join table query. Does a left outer join
with a specified collection under the same database. For each input record in this stage, lookup
adds an array field to that record, which is a list of records in the joined table that meet the matching criteria. lookup
will output the result of the join to the next stage.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.lookup | ✔️ | | | | | | | |
match
Aggregation phase. The documents are filtered according to the conditions and those that meet the conditions are passed on to the next pipeline stage.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.match | ✔️ | | | | | | | |
project
Aggregation phase. Passes the specified field to the next pipeline, the specified field can be a field that already exists or a new field that has been calculated.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.project | ✔️ | | | | | | | |
replaceRoot
Aggregation phase. Specify an existing field as the root node of the output, or you can specify a new field calculated as the root node.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.replaceRoot | ✔️ | | | | | | | |
sample
Aggregation phase. Randomly selects a specified number of records from the document.
Reference
(size: number) => Aggregate
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.sample | ✔️ | | | | | | | |
skip
Aggregation phase. Specify a positive integer, skip the corresponding number of documents and output the remaining documents.
Reference
(value: number) => Aggregate
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.skip | ✔️ | | | | | | | |
sort
Aggregation phase. Sorting of the input documents according to the specified fields.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.sort | ✔️ | | | | | | | |
sortByCount
Aggregation phase. The incoming set is grouped according to the incoming expression. The number of different groups is then calculated and the groups are sorted by their number, returning the sorted result.
Reference
(object: Object) => Aggregate
Parameter | Type |
---|
object | Object |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.sortByCount | ✔️ | | | | | | | |
unwind
Aggregation phase. The document is split using each element in the specified array field. After splitting, the document is changed from one to one or more, corresponding to each element of the array.
Reference
(value: string | object) => Aggregate
Parameter | Type |
---|
value | `string |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.unwind | ✔️ | | | | | | | |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
Aggregate.addFields | ✔️ | | | | | | | |
Aggregate.bucket | ✔️ | | | | | | | |
Aggregate.bucketAuto | ✔️ | | | | | | | |
Aggregate.count | ✔️ | | | | | | | |
Aggregate.end | ✔️ | | | | | | | |
Aggregate.geoNear | ✔️ | | | | | | | |
Aggregate.group | ✔️ | | | | | | | |
Aggregate.limit | ✔️ | | | | | | | |
Aggregate.lookup | ✔️ | | | | | | | |
Aggregate.match | ✔️ | | | | | | | |
Aggregate.project | ✔️ | | | | | | | |
Aggregate.replaceRoot | ✔️ | | | | | | | |
Aggregate.sample | ✔️ | | | | | | | |
Aggregate.skip | ✔️ | | | | | | | |
Aggregate.sort | ✔️ | | | | | | | |
Aggregate.sortByCount | ✔️ | | | | | | | |
Aggregate.unwind | ✔️ | | | | | | | |
IGeo
Database geolocation structure set
Reference
Point
Constructs a geolocation 'point'. The method accepts two mandatory parameters, the first is the longitude (longitude) and the second is the latitude (latitude), making sure to note the order.
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Reference
(longitude: number, latitide: number) => GeoPoint
Parameter | Type |
---|
longitude | number |
latitide | number |
Sample Code
Example 1
db.collection('todos').add({
data: {
description: 'eat an apple',
location: db.Geo.Point(113, 23)
}
}).then(console.log).catch(console.error)
Example 2
In addition to constructing a point using the interface, the JSON representation of a point (Point) can also be used using the equivalent GeoJSON in the following format:
{
"type": "Point",
"coordinates": [longitude, latitude]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'Point',
coordinates: [113, 23]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.Point | ✔️ | | | | | | | |
LineString
Constructing a 'line' of geographic locations. A line consists of two or more points connected in an orderly fashion.
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Reference
(points: JSONMultiPoint | GeoPoint[]) => GeoMultiPoint
Parameter | Type |
---|
points | `JSONMultiPoint |
Sample Code
Example 1
db.collection('todos').add({
data: {
description: 'eat an apple',
location: db.Geo.LineString([
db.Geo.Point(113, 23),
db.Geo.Point(120, 50),
])
}
}).then(console.log).catch(console.error)
Example 2
In addition to constructing a LineString using the interface, a JSON representation of the equivalent GeoJSON line (LineString) can also be used, in the following format:
{
"type": "LineString",
"coordinates": [
[p1_lng, p1_lat],
[p2_lng, p2_lng]
]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'LineString',
coordinates: [
[113, 23],
[120, 50]
]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.LineString | ✔️ | | | | | | | |
Polygon
Constructing a geolocation "polygon"
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Note
A polygon consists of one or more Linear Rings, which are closed line segments. A closed line segment consists of at least four points, the last of which must have the same coordinates as the first, thus indicating the start and end of the ring. If a polygon consists of more than one linear ring, the first linear ring represents the outer ring (the outer boundary) and all subsequent linear rings represent the inner ring (i.e. the hole in the outer ring, not counting the area within this polygon). If a polygon consists of only one linear ring, then this ring is the outer ring.
Polygonal construction rules:
- The first linear ring must be the outer ring
- The outer ring is not self-paying
- All inner rings must be completely within the outer ring
- The inner rings must not intersect or overlap with each other or have common sides
- The outer ring should be counterclockwise and the inner ring clockwise
Reference
(lineStrings: JSONPolygon | GeoLineString[]) => GeoPolygon
Parameter | Type |
---|
lineStrings | `JSONPolygon |
Sample Code
Example 1
Single ring polygon
const { Polygon, LineString, Point } = db.Geo
db.collection('todos').add({
data: {
description: 'eat an apple',
location: Polygon([
LineString([
Point(0, 0),
Point(3, 2),
Point(2, 3),
Point(0, 0)
])
])
}
}).then(console.log).catch(console.error)
Example 2
Polygon with an outer ring and an inner ring
const { Polygon, LineString, Point } = db.Geo
db.collection('todos').add({
data: {
description: 'eat an apple',
location: Polygon([
LineString([ Point(0, 0), Point(30, 20), Point(20, 30), Point(0, 0) ]),
LineString([ Point(10, 10), Point(16, 14), Point(14, 16), Point(10, 10) ])
])
}
}).then(console.log).catch(console.error)
Example 3
In addition to constructing a Polygon using the interface, it is possible to use the JSON representation of a Polygon with the equivalent GeoJSON in the following format:
{
"type": "Polygon",
"coordinates": [
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'Polygon',
coordinates: [
[ [0, 0], [30, 20], [20, 30], [0, 0] ],
[ [10, 10], [16, 14], [14, 16], [10, 10]]
]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.Polygon | ✔️ | | | | | | | |
MultiPoint
Constructs a collection of geolocated "points". A point collection consists of one or more points.
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Reference
(polygons: JSONMultiPolygon | GeoPolygon[]) => GeoMultiPolygon
Parameter | Type |
---|
polygons | `JSONMultiPolygon |
Sample Code
Example 1
db.collection('todos').add({
data: {
description: 'eat an apple',
location: db.Geo.MultiPoint([
db.Geo.Point(113, 23),
db.Geo.Point(120, 50),
])
}
}).then(console.log).catch(console.error)
Example 2
In addition to constructing MultiPoint using the interface, a JSON representation of the point set (MultiPoint) can also be used using the equivalent GeoJSON, in the following format:
{
"type": "MultiPoint",
"coordinates": [
[p1_lng, p1_lat],
[p2_lng, p2_lng]
]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'MultiPoint',
coordinates: [
[113, 23],
[120, 50]
]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.MultiPoint | ✔️ | | | | | | | |
MultiLineString
Constructs a geographic "line" collection. A line collection consists of multiple lines.
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Reference
(lineStrings: JSONMultiLineString | GeoLineString[]) => GeoMultiLineString
Parameter | Type |
---|
lineStrings | `JSONMultiLineString |
Sample Code
Example 1
const { LineString, MultiLineString, Point } = db.Geo
db.collection('todos').add({
data: {
description: 'eat an apple',
location: MultiLineString([
LineString([ Point(0, 0), Point(30, 20), Point(20, 30), Point(0, 0) ]),
LineString([ Point(10, 10), Point(16, 14), Point(14, 16), Point(10, 10) ])
])
}
}).then(console.log).catch(console.error)
Example 2
In addition to constructing a MultiLineString using the interface, it is possible to use the equivalent JSON representation of GeoJSON's line collection (MultiLineString) in the following format:
{
"type": "MultiLineString",
"coordinates": [
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ]
]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'MultiLineString',
coordinates: [
[ [0, 0], [3, 3] ],
[ [5, 10], [20, 30] ]
]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.MultiLineString | ✔️ | | | | | | | |
MultiPolygon
Constructs a geographic "polygon" set. A polygon set consists of multiple polygons.
If a field storing geolocation information is required to be queried, a geolocation index will need to be created on the field
Note
A polygon consists of one or more Linear Rings, which are closed line segments. A closed line segment consists of at least four points, the last of which must have the same coordinates as the first, thus indicating the start and end of the ring. If a polygon consists of more than one linear ring, the first linear ring represents the outer ring (the outer boundary) and all subsequent linear rings represent the inner ring (i.e. the hole in the outer ring, not counting the area within this polygon). If a polygon consists of only one linear ring, then this ring is the outer ring.
Polygonal construction rules:
- The first linear ring must be the outer ring
- The outer ring is not self-paying
- All inner rings must be completely within the outer ring
- The inner rings must not intersect or overlap with each other or have common sides
- The outer ring should be counterclockwise and the inner ring clockwise
Reference
(polygons: JSONMultiPolygon | GeoPolygon[]) => GeoMultiPolygon
Parameter | Type |
---|
polygons | `JSONMultiPolygon |
Sample Code
Example 1
const { MultiPolygon, Polygon, LineString, Point } = db.Geo
db.collection('todos').add({
data: {
description: 'eat an apple',
location: MultiPolygon([
Polygon([
LineString([ Point(50, 50), Point(60, 80), Point(80, 60), Point(50, 50) ]),
]),
Polygon([
LineString([ Point(0, 0), Point(30, 20), Point(20, 30), Point(0, 0) ]),
LineString([ Point(10, 10), Point(16, 14), Point(14, 16), Point(10, 10) ])
]),
])
}
}).then(console.log).catch(console.error)
Example 2
In addition to constructing a MultiPolygon using the interface, the JSON representation of a MultiPolygon can also be used with the equivalent GeoJSON in the following format:
{
"type": "MultiPolygon",
"coordinates": [
[
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ]
],
...
[
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ]
],
]
}
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'MultiPolygon',
coordinates: [
[
[ [50, 50], [60, 80], [80, 60], [50, 50] ]
],
[
[ [0, 0], [30, 20], [20, 30], [0, 0] ],
[ [10, 10], [16, 14], [14, 16], [10, 10]]
]
]
}
}
}).then(console.log).catch(console.error)
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.MultiPolygon | ✔️ | | | | | | | |
GeoPoint
Geographical location "Point"
Reference
Property | Type | Description |
---|
longitude | number | Longitude |
latitude | number | Latitude |
toJSON
Formatted as a JSON structure
toString
Formatted as a string
GeoLineString
The 'line' of geographic position. A line consists of two or more points connected in an orderly fashion.
Reference
Property | Type | Description |
---|
points | GeoPoint[] | Collection of points |
toJSON
Formatted as a JSON structure
toString
Formatted as a string
GeoPolygon
Geographical location "Polygon"
Reference
Property | Type | Description |
---|
lines | GeoLineString[] | Collection of line |
toJSON
Formatted as a JSON structure
toString
Formatted as a string
GeoMultiPoint
A collection of "points" in a geographic location. A point collection consists of one or more points.
Reference
Property | Type | Description |
---|
points | GeoPoint[] | Collection of points |
toJSON
Formatted as a JSON structure
toString
Formatted as a string
GeoMultiLineString
Geographical Location "Line" Collection. A line collection consists of multiple lines.
Reference
Property | Type | Description |
---|
lines | GeoLineString[] | Collection of line |
toJSON
Formatted as a JSON structure
() => JSONMultiLineString
toString
Formatted as a string
GeoMultiPolygon
Geographical position "polygon" set. A polygon set consists of multiple polygons.
Reference
Property | Type | Description |
---|
polygons | GeoPolygon[] | Collection of points Polygonal |
toJSON
Formatted as a JSON structure
toString
Formatted as a string
JSONPoint
JSON structure of the geographic "dot"
Property | Type | Description |
---|
type | "Point" | Type |
coordinates | [number, number] | Coordinates |
JSONLineString
JSON structure of the geographic "line"
Property | Type | Description |
---|
type | "LineString" | Type |
coordinates | [number, number][] | Coordinates |
JSONPolygon
JSON structure of the geographic "polygon"
Property | Type | Description |
---|
type | "Polygon" | Type |
coordinates | [number, number][][] | Coordinates |
JSONMultiPoint
JSON structure of a geographic "dot" set.
Property | Type | Description |
---|
type | "MultiPoint" | Type |
coordinates | [number, number][] | Coordinates |
JSONMultiLineString
JSON structure of a geographic "line" set.
Property | Type | Description |
---|
type | "MultiLineString" | Type |
coordinates | [number, number][][] | Coordinates |
JSONMultiPolygon
JSON structure of a geographic "polygon" set.
Property | Type | Description |
---|
type | "MultiPolygon" | Type |
coordinates | [number, number][][][] | Coordinates |
API Support
API | WeChat Mini-Program | Baidu Smart-Program | Alipay Mini-Program | ByteDance Mini-Program | QQ Mini-Program | H5 | React Native | Quick App |
---|
IGeo.Point | ✔️ | | | | | | | |
IGeo.LineString | ✔️ | | | | | | | |
IGeo.Polygon | ✔️ | | | | | | | |
IGeo.MultiPoint | ✔️ | | | | | | | |
IGeo.MultiLineString | ✔️ | | | | | | | |
IGeo.MultiPolygon | ✔️ | | | | | | | |