2014-04-24 20 views
10

Koleksiyondaki tüm belgelerim için belirli bir alanın tüm değerlerini içeren bir dizi nasıl alabilirim?Belirli bir alanın tüm değerlerini mongodb içinde listele

db.collection:

{ "_id" : ObjectId("51a7dc7b2cacf40b79990be6"), "x" : 1 } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be7"), "x" : 2 } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be8"), "x" : 3 } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be9"), "x" : 4 } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990bea"), "x" : 5 } 

"db.collection.ListAllValuesForfield (x)" Sonuç: Bu alan ne olursa [1,2,3,4,5]

Ayrıca

, bir dizi?

{ "_id" : ObjectId("51a7dc7b2cacf40b79990be6"), "y" : [1,2] } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be7"), "y" : [3,4] } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be8"), "y" : [5,6] } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990be9"), "y" : [1,2] } 
{ "_id" : ObjectId("51a7dc7b2cacf40b79990bea"), "y" : [3,4] } 

"db.collection.ListAllValuesInArrayField (y)" Sonuç: I yapabilir [1,2,3,4,5,6,1,2,3,4]

Ayrıca

, Bu dizi benzersiz? [1,2,3,4,5,6]

+1

([dizinler boyunca bir dizi alan ayrı bir toplanmasını Alma] olası çift http://stackoverflow.com/questions/12183444/getting-a-distinct-aggregation-of- a-dizi-alan-dizin arası) –

+0

Mükemmel teşekkür ederim! Bunu almalı mıyım? – chimpsarehungry

cevap

21

db.collection.distinct('x')

size bir dizi vermelidir ... sadece bu kadar x değerini içeren dokümanlar dizisi dönecekti Bu alan için benzersiz değerlerin.

2

Bu

db.collection.find(
    { }, 
    { x: 1, y: 0, _id:0 } 
) 
+0

Bu cevap için teşekkürler, tam olarak ihtiyacım olan şey. – metamaker

İlgili konular