我有一个字符串的字段数组现在我想从数组中只得到前两个字符串现在可以有人请告诉我该怎么做也假设照片r =现在只有1如何只得到第一个元素是否有任何这样做的特殊方式我已经阅读过关于投影,切片操作符但是无法弄清楚要使用什么以及如何使用,如果我只有一个元素那么在那种情况下我首先要计算要检查的数组的大小如果它的大小大于2然后得到前两个元素,否则只得到一个元素??
答案 0 :(得分:1)
运算符当然是$slice
,只能按索引位置返回所需的元素。
考虑以下示例:
{ "list" : [ 1, 2, 3 ] }
{ "list" : [ 1, 2 ] }
{ "list" : [ 1 ] }
{ "list" : [ ] }
如果您然后使用如下查询的投影部分:
db.collection.find({}, { "$slice": [0,2] })
然后你要求从0
索引位置开始的两个元素,这是前两个元素。
然后结果是:
{ "list" : [ 1, 2 ] }
{ "list" : [ 1, 2 ] }
{ "list" : [ 1 ] }
{ "list" : [ ] }
所以它并不关心实际存在多少元素,它只是重新检索所请求的元素。
语言或框架没有区别。发给MongoDB的运营商是唯一重要的事情。通常,所有"投影" (这是你使用运算符的地方)在.find()
或类似操作的第二个参数中处理。