作为MongoDB文档的一部分,我存储了一个对象array.例如,如何仅查询数组的第四个元素?所以我不想把整个数组都取出来,只想取第四个元素.

推荐答案

使用$slice.

db.foo.find({ bar : "xyz" } , { my_array : { $slice : [n , 1] } } )

将检索foo集合中所有文档的数组"my_array"的第n个元素,其中bar="xyz".

MongoDB文档中的其他一些示例:

db.posts.find({}, {comments:{$slice: 5}}) // first 5 comments
db.posts.find({}, {comments:{$slice: -5}}) // last 5 comments
db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10
db.posts.find({}, {comments:{$slice: [-20, 10]}}) // 20 from end, limit 10

你可以在这里读到:http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields

Mongodb相关问答推荐

MongoDB:就地分组嵌套数组的元素

Mongo DB-如果一个特定字段有多个文档匹配,则更新文档字段

筛选出嵌套数组中的记录Mongo DB聚合

如何在Mongo中制作全覆盖索引

MongoDB $lookup 查找字段值数组

lexik_jwt_authentication下无法识别的选项api_platform

MongoDB 使用 pymongo 收集 500K 文档的写入速度很差

Mongodb聚合中基于其他字段值的多个条件的动态新字段值

MongoID find 或 find_by

mongoose默认值等于其他值

.insertOne 不是函数

你如何让 mongo 在远程服务器上运行?

Python - Pymongo 插入和更新文档

docker 在不同的端口上运行 mongo 映像

如何使用服务器实例指定 mongodb 用户名和密码?

如何通过键名从 mongoDB 中检索值?

带有索引字段的 MongoDB 正则表达式

Mongoose 为所有嵌套对象添加 _id

对象不是 JSON 可序列化的

如何将 Geojson 文件导入 MongoDB