arrays - MongoDB - 如何查找仅包含指定值的数组
问题描述
假设我有以下文件
segments
{
"name":"S1",
},
{
"name":"S2",
},
{
"name":"S3",
}
和用户
users
{
"id":1234.
"segments":["S1","S2","S3"]
}
{
"id":1235.
"segments":["S1"]
}
{
"id":1237.
"segments":["S2"]
}
{
"id":1236.
"segments":["S1","S2"]
}
如果我执行 users.find({ "segments" : "S2" }),它会带来所有带有字段“S2”的文档。
我正在寻找的是,只有值 S2 的数组。我正在寻找这个输出:
{
"id":1237.
"segments":["S2"]
}
因为它只有我正在寻找的 S2
解决方案
您可以使用$elemMatch
投影
db.collection.find({
segments: ["S2"]
})
推荐阅读
- performance - 获取字符串的所有连续子字符串的最佳方法
- java - 如何在 Android 设备上关闭/接受设备位置弹出窗口 - Selenium with Browser stack
- laravel - 架构文件未在测试中运行
- ios - 当键盘出现时更新 WKWebView 大小而不滚动错误
- python - 如何根据元组中索引的升序打印字符串
- ubuntu-18.04 - scp 卡在没有任何错误的情况下,直到我将终端移动到另一台显示器
- google-cloud-platform - 带有 Cloud Run 的 Google Cloud Platform 负载均衡器引发 404 错误
- c - 在 MPI 中定义新的数据类型,在 C 中使用数组
- python - python django中的计算字段
- python - 定义为另一个列表类型类属性的长度的类属性不会自行更新并且总是返回相同的值