鑑於集合,如下所示:
> db.food.find()
{ "_id" : 1, "fruit" : [ "apple", "banana", "peach", "strawberry", "grape" ], "size" : 2 }
{ "_id" : 2, "fruit" : [ "apple", "kumquat", "orange", "strawberry", "grape" ], "size" : 2 }
{ "_id" : 3, "fruit" : [ "cherry", "banana", "apple", "strawberry", "grape" ], "size" : 2 }
我需要結合{水果:{$切片:2}} {1}的水果中發現功能和。 這是我試過的,沒有一個按我期望的方式工作。
> db.food.find({}, {fruit : {$slice : 2}, fruit : 1, _id : 0})
{ "fruit" : [ "apple", "banana", "peach", "strawberry", "grape" ] }
{ "fruit" : [ "apple", "kumquat", "orange", "strawberry", "grape" ] }
{ "fruit" : [ "cherry", "banana", "apple", "strawberry", "grape" ] }
This method ONLY works for {fruit : 1, _id : 0}
> db.food.find({}, {fruit : 1, fruit : {$slice : 2}, _id : 0})
{ "fruit" : [ "apple", "banana" ], "size" : 2 }
{ "fruit" : [ "apple", "kumquat" ], "size" : 2 }
{ "fruit" : [ "cherry", "banana" ], "size" : 2 }
This method ONLY works for {fruit : {$slice : 2}}
> db.food.find({}, {$and : [{fruit : 1}, {fruit : {$slice : 1}}]})
{ "_id" : 1 }
{ "_id" : 2 }
{ "_id" : 3 }
我甚至不知道爲什麼返回的結果是這樣的
要清楚,這裏就是我想:
{ "fruit" : [ "apple", "banana" ] }
{ "fruit" : [ "apple", "kumquat" ] }
{ "fruit" : [ "cherry", "banana" ] }
這裏有一個'黑客'在這裏工作:http://stackoverflow.com/a/15798087/1063287你指定一個虛擬字段返回,它以某種方式抑制除了你正在切片的字段'{'國家':{'$ slice':[0,3]},'_id':0,foo:1}' – user1063287
這是一個可怕的,可怕的黑客攻擊。謝謝。 – Laizer