2012-09-14 59 views
-2

收藏如:MongoDB的查询蟒蛇

{"_id":Obj,"fir":1,"sec":1,"trd":"xxx"} 
{"_id":Obj,"fir":1,"sec":2,"trd":"few"} 
{"_id":Obj,"fir":1,"sec":3,"trd":"ver"} 
{"_id":Obj,"fir":1,"sec":1,"trd":"xfsd"} 
{"_id":Obj,"fir":1,"sec":2,"trd":"cdsv"} 
{"_id":Obj,"fir":1,"sec":3,"trd":"xedsv"} 
{"_id":Obj,"fir":1,"sec":1,"trd":"crv"} 
{"_id":Obj,"fir":1,"sec":2,"trd":"cre"} 
{"_id":Obj,"fir":1,"sec":3,"trd":"xewfr"} 
{"_id":Obj,"fir":2,"sec":1,"trd":"xxx"} 
{"_id":Obj,"fir":2,"sec":2,"trd":"few"} 
{"_id":Obj,"fir":2,"sec":3,"trd":"ver"} 
{"_id":Obj,"fir":2,"sec":1,"trd":"xfsd"} 
{"_id":Obj,"fir":2,"sec":2,"trd":"cdsv"} 
{"_id":Obj,"fir":2,"sec":3,"trd":"xedsv"} 
{"_id":Obj,"fir":2,"sec":1,"trd":"crv"} 
{"_id":Obj,"fir":2,"sec":2,"trd":"cre"} 
{"_id":Obj,"fir":2,"sec":3,"trd":"xewfr"} 
现在

,我希望得到这样的结果:

{"_id":Obj,"fir":1,"sec":1,"trd":"xxx"} 
{"_id":Obj,"fir":1,"sec":2,"trd":"few"} 
{"_id":Obj,"fir":1,"sec":3,"trd":"ver"} 

这意味着我只是想获得一个“秒”文件为每个sec.Can人知道如何查询它?

+0

有什么标签“SQL”,“巨蟒”,“pymongo”做这里开始??? –

回答

0

你想为我想的group

在蒙戈外壳,这个工程:

db.test.group({reduce: function(doc, out) {if (!out[doc.sec]) {out[doc.sec] = doc} }, initial:{}}) 

产量:

[ 
    { 
     "1" : { 
      "_id" : ObjectId("5052bd3d89e42529f53462d3"), 
      "fir" : 1, 
      "sec" : 1, 
      "trd" : "xxx" 
     }, 
     "2" : { 
      "_id" : ObjectId("5052bd3d89e42529f53462d4"), 
      "fir" : 1, 
      "sec" : 2, 
      "trd" : "few" 
     }, 
     "3" : { 
      "_id" : ObjectId("5052bd3d89e42529f53462d5"), 
      "fir" : 1, 
      "sec" : 3, 
      "trd" : "ver" 
     } 
    } 
] 

在pymongo,包裹在一个字符串的js函数和bson.Code:

db.test.group({},{},{},bson.Code(
     "function(doc, out) {if (!out[doc.sec]) {out[doc.sec] = doc} }" 
    )) 

冰腥热潮。键入“秒”,但你可以改变它。

0

请照顾循环序列..means线的一定不只是在回路

from pymongo import MongoClient 
connection = MongoClient('mongodb://localhost:27017/') 
db = connection.students.ctec121 
student_record = {} 
print() 
# set flag variable 
flag = True 



print() 
# loop for data input 
while (flag): 
# ask for input 
     student_name = input("Enter student name") 
     student_grade=input("enter grade student")      
    # place values in dictionary 
     student_record = {'name':student_name,'grade':student_grade} 
# insert the record 
     db.insert(student_record) 
# should we continue? 
    flag = input('Enter another record? ') 
    if (flag[0].upper() == 'N'): 
    flag = False 

# find all documents 
results = db.find() 




for record in results: 
    print(record['name'] + ',',record['grade'])