2014-04-24 13 views
10

में किसी निश्चित फ़ील्ड के सभी मानों को सूचीबद्ध करें संग्रह में मेरे सभी दस्तावेज़ों के लिए मुझे किसी निश्चित फ़ील्ड के सभी मानों वाला एक सरणी कैसे प्राप्त होगी?mongodb

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)" परिणाम: [1,2,3,4,5]

इसके अलावा, क्या हुआ अगर इस क्षेत्र था एक सरणी?

{ "_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)" परिणाम: [1,2,3,4,5,6,1,2,3,4]

साथ ही, मैं कर सकते हैं यह सरणी अद्वितीय है? [1,2,3,4,5,6]

+1

([अनुक्रमित भर में एक सरणी क्षेत्र की एक अलग एकत्रीकरण हो रही] के संभावित डुप्लिकेट http://stackoverflow.com/questions/12183444/getting-a-distinct-aggregation-of- एक-सरणी-फ़ील्ड-से-इंडेक्स) –

+0

बिल्कुल सही धन्यवाद! क्या मुझे इसे नीचे ले जाना चाहिए? – chimpsarehungry

उत्तर

21

db.collection.distinct('x')

आप एक सरणी देना चाहिए उस क्षेत्र के लिए अद्वितीय मूल्यों का।

2

यह डॉक्स की एक सरणी वापसी होगी, सिर्फ यह है एक्स मूल्य युक्त ...

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

इस उत्तर के लिए धन्यवाद, वास्तव में मुझे क्या चाहिए। – metamaker

1

नोटिस: मेरा उत्तर मूल उत्तर से एक कांटा है।

किसी भी "अंगूठे ऊपर" से पहले, स्वीकार किए गए उत्तर "अंगूठे" :)।


db.collection.distinct("NameOfTheField")

एक संग्रह या देखने भर में एक निर्धारित क्षेत्र के लिए अलग-अलग मान ढूँढता है और एक सरणी में परिणाम देता है।

संदर्भ: https://docs.mongodb.com/manual/reference/method/db.collection.distinct/