Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何获取MongoDB中的所有文档in?

如何获取MongoDB中的所有文档in?
EN

Stack Overflow用户
提问于 2013-09-18 20:41:24
回答 8查看 43.7K关注 0票数 26

如何在MongoDB中获取包含所有文档ids的数组?我只需要一组I,而不需要文档内容。

EN

回答 8

Stack Overflow用户

发布于 2013-09-18 21:56:04

您可以在Mongo shell中通过对光标调用map来完成此操作,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var a = db.c.find({}, {_id:1}).map(function(item){ return item._id; })

结果是a是一个只包含_id值的数组。

它在Node中的工作方式类似。

(这是MongoDB节点驱动程序v2.2和节点v6.7.0)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
db.collection('...')
  .find(...)
  .project( {_id: 1} )
  .map(x => x._id)
  .toArray();

请记住将map 放在 toArray之前,因为此map不是JavaScript map函数,但它是由MongoDB提供的函数,并且它在返回游标之前在数据库中运行。

票数 61
EN

Stack Overflow用户

发布于 2015-02-08 02:13:43

一种方法是简单地使用runCommand应用编程接口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
db.runCommand ( { distinct: "distinct", key: "_id" } )

它给出了类似这样的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "values" : [
        ObjectId("54cfcf93e2b8994c25077924"),
        ObjectId("54d672d819f899c704b21ef4"),
        ObjectId("54d6732319f899c704b21ef5"),
        ObjectId("54d6732319f899c704b21ef6"),
        ObjectId("54d6732319f899c704b21ef7"),
        ObjectId("54d6732319f899c704b21ef8"),
        ObjectId("54d6732319f899c704b21ef9")
    ],
    "stats" : {
        "n" : 7,
        "nscanned" : 7,
        "nscannedObjects" : 0,
        "timems" : 2,
        "cursor" : "DistinctCursor"
    },
    "ok" : 1
}

但是,使用实际的distinct应用程序接口还有一种更好的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var ids = db.distinct.distinct('_id', {}, {});

它只给出了一个ids数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
    ObjectId("54cfcf93e2b8994c25077924"),
    ObjectId("54d672d819f899c704b21ef4"),
    ObjectId("54d6732319f899c704b21ef5"),
    ObjectId("54d6732319f899c704b21ef6"),
    ObjectId("54d6732319f899c704b21ef7"),
    ObjectId("54d6732319f899c704b21ef8"),
    ObjectId("54d6732319f899c704b21ef9")
]

不确定第一个版本,但Node.js驱动程序(我看到您提到您想要使用它)肯定支持后者。它看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
db.collection('c').distinct('_id', {}, {}, function (err, result) {
    // result is your array of ids
})
票数 11
EN

Stack Overflow用户

发布于 2016-03-10 17:14:10

我也想知道如何使用@ Node.JS 2793120这样的MongoDB用户驱动程序来做到这一点。其他人说他应该用.each迭代结果,这在我看来效率很低。我改用了MongoDB's aggregation

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    myCollection.aggregate([
            {$match: {ANY SEARCHING CRITERIA FOLLOWING $match'S RULES} },
            {$sort: {ANY SORTING CRITERIA, FOLLOWING $sort'S RULES}},
            {$group: {_id:null, ids: {$addToSet: "$_id"}}}
    ]).exec()

排序阶段是可选的。如果您想要所有集合的_ids,也可以使用match。如果您console.log结果,您将看到类似以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [ { _id: null, ids: [ '56e05a832f3caaf218b57a90', '56e05a832f3caaf218b57a91', '56e05a832f3caaf218b57a92' ] } ]

然后在其他地方使用result.ids的内容。

这里的关键部分是$group section。您必须为_id定义一个空值(否则,聚合将崩溃),并创建一个包含所有_ids的新数组字段。如果您不介意If重复(根据$match阶段中使用的搜索条件,并假设您对_id之外的字段进行分组,该字段也具有另一个文档_id),则可以使用$push而不是$addToSet

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18881982

复制
相关文章
MongoDB 如何查看文档的大小
如何查看文档的大小?常见是查看集合中平均文档大小,但很少查看单个文档或者特定范围文档的大小甚至查看文档中字段长度大小?通过查看官方文档来解答如上问题,默认返回都是字节为单位(byte),以下整理自官方文档以及jira.
徐靖
2022/08/23
3.6K0
MongoDB(四)—-MongoDB的文档操作
在MongoDB中文档是指多个键及其关联的值有序地放置在一起就是文档,其实指的就是数据,也是我们平时操作最多的部分。 MongoDB中的文档的数据结构和 JSON 基本一样。所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
全栈程序员站长
2021/04/07
1.5K0
MongoDB的文档(二)
MongoDB中查询文档非常方便,可以使用集合对象的find()方法。例如,要查询名为mycollection的集合中所有文档,可以使用以下命令:
堕落飞鸟
2023/05/09
7310
MongoDB的文档(一)
MongoDB是一种非关系型数据库,使用BSON(Binary JSON)格式存储数据。MongoDB的文档是MongoDB中的核心数据结构,类似于关系数据库中的行。
堕落飞鸟
2023/05/09
6410
教你如何快速从 Oracle 官方文档中获取需要的知识
https://docs.oracle.com/en/database/oracle/oracle-database/index.html
JiekeXu之路
2020/06/10
8K0
教你如何快速从 Oracle 官方文档中获取需要的知识
如何快速获取一个网站的所有资源 如何快速获取一个网站的所有图片 如何快速获取一个网站的所有css
今天介绍一款软件,可以快速获取一个网站的所有资源,图片,html,css,js......
拿我格子衫来
2022/01/24
4.3K0
如何快速获取一个网站的所有资源 如何快速获取一个网站的所有图片 如何快速获取一个网站的所有css
网页中如何获取客户端系统已安装的所有字体?
如何获取系统字体? 1.首先在需要获取系统字体的网页<body>后加入以下代码: <DIV style="LEFT: 0px; POSITION: absolute; TOP: 0px"> <OBJECT ID="dlgHelper" CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" WIDTH="0px" HEIGHT="0px"> </OBJECT> <script src="FontFacesMenu.js" language="javascript" type="text/javascript"></script> </DIV>
Java架构师必看
2021/03/22
7.3K0
mongoDB 文档删除
mongoDB文档删除等同于关系型数据库中删除满足条件的单条或者多条记录,通常使用db.collection.remove()方法来实现文档的删除动作。mongDB文档删除属于原子性操作,仅仅在仅仅在单个文档级别。本文描述mongoDB文档删除操作并给出示例。 预备热身 Linux下快速安装MongoDB Windows平台下安装MongoDB mongoDB 启动与停止 mongo shell连接到mongoDB及shell提示符下执行js脚本 mongoDB简介及关键特性
Leshami
2018/08/13
1.6K0
MongoDB 插入文档
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
用户4988376
2021/08/13
1.2K0
MongoDB查找文档
3、查找文档 // 根据条件查找文档(条件为空则查找所有文档) Course.find().then(result => console.log(result)) // 返回文档集合 [{ _id: 5c0917ed37ec9b03c07cf95f, name: 'node.js基础', author: 'wuyuxin‘ },{ _id: 5c09dea28acfb814980ff827, name: 'Javascript', author: 'wuyuxin‘ }]
Qwe7
2022/05/23
2.6K0
mongoDB 文档查询
1、文档查询db.users.find()等价于db.users.find( {} ) 2、基于and运算符的多个组合条件可以省略and运算符的多个组合条件可以省略and,直接将条件组合即可 3、对于$and运算符内的条件,用[]括起来,相当于数组形式 4、对于数组查询,可以使用基于下标的方式精确配置特定的元素值 5、对于内嵌文档,可以使用”文档键.内嵌文档键”方式进行访问 6、对于数组内内嵌文档的方式,可以使用”数组名.下标.内嵌文档键”方式访问 7、对于哪些列名需要显示可以通过{ field1: <0|1>, … }来设定 8、本文参考:https://docs.mongodb.com/manual/tutorial/query-documents/
Leshami
2018/08/13
3.1K0
mongoDB 文档插入
db.collection.insertOne(obj, ) 插入单个文档到一个集合(3.2版本有效),可选参数为w, wtimeout db.collection.insertMany( [objects], ) 插入多个文档到一个集合(3.2版本有效),可选参数为w, wtimeout db.collection.insert(obj) 传统的插入方式
Leshami
2018/08/13
9820
mongoDB 文档更新
1、mongoDB文档更新有很多个不同的方法,传统的update,以及3.2版本之后的updateOne,updateMany 2、mongoDB文档替换也有很多个不通的方法,传统的update,以及3.2版本之后的replaceOnye,replaceMany 3、updateOne与updateMany是对update方法的扩展,update方法可以通过multi值为true或false来等同于updateMany以及updateOne 4、replaceOne与replaceMany也是对update方法的扩展,update方法可以通过multi值为true或false来等同于replaceMany以及replaceOne
Leshami
2018/08/13
1.7K0
SpringBoot高级篇MongoDB之如何新增文档
MongoDB一个基本数据称为document,和mysql不一样,没有强制约束哪些字段,可以随意的插入,下面是一个简单的插入演示
一灰灰blog
2019/05/26
1.4K0
PHP 获取指定 URL 页面中的所有链接
以下代码可以获取到指定 URL 页面中的所有链接,即所有 a 标签的 href 属性:
Z4
2020/04/22
7.6K0
PHP如何获取本周所有的日期
在日常的开发中,尤其是数据汇总的业务场景,我们一般会有这样的场景,统计本周内的订单数据。首先我们要得到本周内有哪些日期,在根据日期去做查询操作。这里分享一篇如何使用PHP获取本周的所有日期。
兔云小新LM
2023/05/11
2.6K0
PHP如何获取本周所有的日期
MongoDB文档查询操作
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
别团等shy哥发育
2023/02/25
1.1K0
MongoDB文档查询操作
MongoDB 删除文档的操作命令
MongoDB 数据更新可以使用 update() 函数。在执行 remove() 函数前先执行 find() 命令来判断执行的条件是否正确,这是一个比较好的习惯。
用户9236362
2021/11/29
1.1K0
如何免费获取 MongoDB 云数据库
如何免费获取 MongoDB 云数据库 想做些实验但又不想掏钱购买,那么有免费的 MongoDB 数据库可以用么❓ 有的~最近笔者发现 DAAS 服务商 mLab 发布了将要合并到 MongoDB 的
JS菌
2019/04/10
6K0
如何免费获取 MongoDB 云数据库
点击加载更多

相似问题

mongodb从所有文档中获取所有子文档

15

如何获取MongoDB文档的所有字段

11

如何获取文档对象MongoDB中的所有元素

28

如何获取mongodb集合中的所有重复文档?

119

如何快速获取所有文档MongoDB pymongo

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文