获取 MongoDB 中数组的第 n 个元素
作为 MongoDB 文档的一部分,我存储了一个对象数组。例如,如何仅查询数组的第四个元素?所以我不想取出整个数组,只取出第四个元素。
As part of my document in MongoDB I'm storing an array of objects. How can I query it for only the 4th element of the array for example? So I don't want the get the entire array out, just the 4th element.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
$slice
。将检索 foo 集合中所有文档的数组“my_array”的第 n 个元素,其中 bar =“xyz”。
MongoDB 文档中的一些其他示例:
您可以在此处阅读:http://www.mongodb.org/display/DOCS/Retriving+a+Subset+of+Fields"> mongodb.org/display/DOCS/Retriving+a+Subset+of+Fields
Use
$slice
.will retrieve the nth element of the array "my_array" of all documents in the foo collection where bar = "xyz".
Some other examples from the MongoDB documentation:
Which you can read here: http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields
您可以使用
$arrayElemAt
运算符MongoDB 3.2 中新增用于返回指定数组索引处的元素。演示:
名为 baskets 的集合包含如下所示的文档:
以下查询返回“fruits”数组中索引
-2
处的元素(第二个元素)。产生
以下查询数组中最后一个元素之前的元素;因此索引
-2
处的元素会产生:
You can use the
$arrayElemAt
operator new in MongoDB 3.2 to return the element at the specified array index.Demo:
A collection named baskets contains documents that look like this:
The following query return the element at index
-2
(second element) in the "fruits" array.which produces
And the following query the element before the last element in the array; thus the element at index
-2
which yields:
另一种方法是使用更新数组语法。此处,
contribs.1
将contribs
数组中的第二个元素设置为值ALGOL 58
(取自 更新语法手册页)Another way to do this is to use the update array syntax. Here,
contribs.1
sets the second element in thecontribs
array to have valueALGOL 58
(Taken from the manual page on update syntax)