如何从MongoDB的db.zips.find()结果中获取第一个元素?
解决MongoDB Shell中获取查询结果第一个元素的问题
问题原因
你看到的数组形式只是MongoDB Shell对游标的可视化展示,实际上db.zips.find()返回的是游标(Cursor)对象,并非原生JavaScript数组,所以直接用a[0]无法获取元素。
解决方法
方法1:将游标转为数组
赋值时调用toArray()方法把游标转换为真正的数组,之后就能用数组下标访问元素:
sample_training> a = db.zips.find({"pop": 9999}).toArray() [ { _id: ObjectId("5c8eccc1caa187d17ca6ed18"), city: 'ACMAR', zip: '88888', loc: { y: 33.584132, x: 86.51557 }, pop: 9999, state: 'AL' } ] sample_training> a[0] { _id: ObjectId("5c8eccc1caa187d17ca6ed18"), city: 'ACMAR', zip: '88888', loc: { y: 33.584132, x: 86.51557 }, pop: 9999, state: 'AL' }
方法2:直接查询单个文档
如果确定匹配结果只有一个,用findOne()替代find(),直接返回单个文档对象:
sample_training> a = db.zips.findOne({"pop": 9999}) { _id: ObjectId("5c8eccc1caa187d17ca6ed18"), city: 'ACMAR', zip: '88888', loc: { y: 33.584132, x: 86.51557 }, pop: 9999, state: 'AL' }
内容的提问来源于stack exchange,提问作者Fajela Tajkiya
相关产品推荐
相关产品推荐

