arrays - 查找 MongoDb 文档中数组中第一个位置的所有不同值
问题描述
在我的论文集中的文档中有一个数组字段。它们看起来像这种格式:
"citation" : [
"Communications Physics",
" 2",
"98",
"2019"
]
我正在尝试查询所有集合并获取此数组中位置 0 的不同值。在这种情况下是“通信物理学”。
db.papers.distinct('citation') 不能解决我的问题,因为我只想要第一个元素的不同值。
我尝试了不同的聚合公式,但是我无法解决错误的标记或不正确的语法。
解决方案
如果你想使用aggregate
:
db.papers.aggregate([
{$project : {"FirstElement" : { $arrayElemAt: [ "$citation", 0 ] }}}, // Take out the first element from citation array
{$group : {_id : "$FirstElement"}} // Group By The element you took out
]);
如果你想使用distinct
尝试包括索引"citation.0"
:
db.papers.distinct("citation.0");
推荐阅读
- remix - 混音错误 - 应支付调用的函数
- c++ - C ++上简单字符串数组的字符转换
- c++ - 如何读取多个输入文件并在 txt 中写入新文件并在 C++ 中写入 excel?
- google-api - 从 Google 获取第一个图像 URL
- sql - SQL - 通过客户花费的金额查找客户的 AVG
- ios - 通知中心收不到通知
- python - python的策划者游戏
- python - 用于网络嵌入的 Word2Vec 忽略语料库(walks)中的单词(节点)
- json - JSON to struct omitempty PATCH 与 POST 问题
- flutter - 如何在颤振中创建流程图?