mongoose 查询数据属性为数组,且包含某个值的方法
2024-10-09 19:55:26
mongoose在创建schema的时候有些属性需要设置为数组类型,比如商品图片、商品标签、不同尺寸、价格等。
那么怎么查询具有某个标签的商品了,下面记录一下两种情况:
查询具有‘vue’标签的文章
1、数组中存储的是字符串元素
下面以个人博客数据来说明
- 数据(labels 值为字符串数组)
[
{
labels: ["vue","react","mongoose"],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
},
{
labels: ["mongoose"],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
},
{
labels: ["vue"],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
}]
- 查询
Articles.find({ isPublish: 1, labels: { $elemMatch: { $eq: 'vue' } } }, (err, doc) => {})
2、数组中存储的是对象
- 数据 (labels 值为对象数组)
[
{
labels: [{name:"vue"},{name"react"},{name"mongoose"}],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
},
{
labels: [{name"mongoose"}],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
},
{
labels: [{name:"vue"}],
likeCount: 0,
lookCount: 0,
name: "手动封装一个渐变色进度条",
note: "UI小姐姐给了一个渐变色的滚动条,cv编程已经没用了,自己动手封装一个",
__v: 0,
_id: "5f1ac78aec91df5d76f877d6"
}]
- 查询 写法1
Articles.find({
isPublish: 1,
labels: { $elemMatch: { name: 'vue' } }
}, (err, doc) => {})
- 查询 写法2
Articles.find({ isPublish: 1, labels.name:'vue'}}, (err, doc) => {})
最新文章
- [LeetCode] Plus One 加一运算
- 批处理命令——call 和 start
- lambda浅尝
- Mac上打开拷贝到移动硬盘里的文件提示“已经被osx使用不能打开”解决办法
- 开关WIFI脚本
- 借助Glances Monitor,密切关注你的系统
- [zz] Pixar’s OpenSubdiv V2: A detailed look
- Flex和Servlet结合上传文件报错(二)
- IS_EER分析
- Vacations
- SQL Server的学习
- 海量数据处理算法(top K问题)
- 2018年2月19日我的java学习(——)
- rem 自适应、整体缩放
- Python将list中的string批量转化成int/float
- Java 导入数据到Excel并提供文件下载接口
- dplyr-高效的数据变换与整理工具--转载
- 河工大玲珑校赛重现の rqy的键盘
- selectedIndex 属性
- 用MongoDB取代RabbitMQ(转)
热门文章
- java基础语法(二)
- SpringMVC-数据提交
- 【原创】Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)
- PicGo软件搭配gitee实现图床
- 你必须要知道的babel二三事
- Blocks(POJ 3734)
- python之cookie与session
- python中反射 getattr(对象,'方法')()和hasattr(对象,'方法')
- 内存管理初始化源码2:setup_arch
- 对OAuth2.0协议的理解和测试demo