だから優しくしてください
次のような mongo doc があります。
{ "Institute" : "Ucambridge",
"Project" : [ #array of projects
{"Sample":[ #array of samples
{ "workflow" : "abc", "owner" : "peter" }
]
"pname":"project1",
"dir" : "C drive"
}
]
}
mongo でネストされたループを持つことは良い考えではないことは承知していますが、これはデータが私に渡される方法です。
Pythonサーバーで、すべてのプロジェクトをループしてプロジェクト名を抽出しようとしています。
カーソルを取得します:
u = mongo.db.testpymongo.find( )
インスティテュートは次の方法で取得できます:
for x in u :
print x["Institute"]
次の方法でプロジェクトを取得できます:
for x in u :
print x["Project"]
戻り値:
[{u'Sample':[{u'workflow:':u'wf', u'owner':u'peter'} ] u'pname':u'project1 ', u'dir:u'C drive'
}]
しかし、カーソルから pname 変数だけにアクセスするにはどうすればよいですか?
私が試してみました :
1.print x["Project:pname"] # does not work
2.print x["Project":"pname"] # gives unhashable type error
3.print x["pname"] # gives Key error
4.print x["Project"].["pname"] # gives syntax error
5.print x["Project.pname"] # gives key error
ドキュメントの一部のみを返すために find() 関数で属性を使用する必要がありますか?
すなわち:そうですか?
d = mongo.db.testpymongo.find( {"Institute":"UCambridge", "Project.pname": "プロジェクト 1" } )
ありがとうございました !