支持端:小程序 2.8.3, 云函数 1.2.1, Web
站在用户的角度思考问题,与客户深入沟通,找到大安网站设计与大安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖大安地区。
数组查询操作符。用于数组字段的查询筛选条件,要求数组字段中包含给定数组的所有元素。
找出 tags 数组字段同时包含 cloud 和 database 的记录
const _ = db.command
db.collection('todos').where({
tags: _.all(['cloud', 'database'])
})
.get({
success: console.log,
fail: console.error
})
如果数组元素是对象,则可以用 _.elemMatch 匹配对象的部分字段
假设有字段 places 定义如下:
{
"type": string
"area": number
"age": number
}
找出数组字段中至少同时包含一个满足 “area 大于 100 且 age 小于 2” 的元素和一个满足 “type 为 mall 且 age 大于 5” 的元素
const _ = db.command
db.collection('todos').where({
places: _.all([
_.elemMatch({
area: _.gt(100),
age: _.lt(2),
}),
_.elemMatch({
name: 'mall',
age: _.gt(5),
}),
]),
})
.get({
success: console.log,
fail: console.error,
})
支持端:小程序 2.8.3, 云函数 1.2.1, Web
用于数组字段的查询筛选条件,要求数组中包含至少一个满足 elemMatch 给定的所有条件的元素
匹配条件
假设集合示例数据如下:
{
"_id": "a0",
"city": "x0",
"places": [{
"type": "garden",
"area": 300,
"age": 1
}, {
"type": "theatre",
"area": 50,
"age": 15
}]
}
找出 places 数组字段中至少同时包含一个满足 “area 大于 100 且 age 小于 2” 的元素
const _ = db.command
db.collection('todos').where({
places: _.elemMatch({
area: _.gt(100),
age: _.lt(2),
})
})
.get()
注意*:如果不使用 elemMatch 而直接如下指定条件,则表示的是 places 数组字段中至少有一个元素的 area 字段大于 100 且 places 数组字段中至少有一个元素的 age 字段小于 2:
const _ = db.command
db.collection('todos').where({
places: {
area: _.gt(100),
age: _.lt(2),
}
})
.get()
假设集合示例数据如下:
{
"_id": "a0",
"scores": [60, 80, 90]
}
找出 scores 数组字段中至少同时包含一个满足 “大于 80 且小于 100” 的元素
const _ = db.command
db.collection('todos').where({
places: _.elemMatch(_.gt(80).lt(100))
})
.get()
支持端:小程序 2.8.3, 云函数 1.2.1, Web
更新操作符,用于数组字段的查询筛选条件,要求数组长度为给定值
找出 tags 数组字段长度为 2 的所有记录
const _ = db.command
db.collection('todos').where({
places: _.size(2)
})
.get({
success: console.log,
fail: console.error,
})
网页名称:创新互联小程序教程:SDK数据库Command·查询·数组操作符
文章出自:http://www.mswzjz.cn/qtweb/news21/246771.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能