【发布时间】:2014-02-02 16:18:23
【问题描述】:
下面的函数搜索带有子项项目的集合。如果有一个将isManager 设置为1 的子项,它应该返回True,否则它将始终返回False。
def isMasterProject(self, pid, uid):
masterProjects = False
proj = self.collection.find({ "_id": uid, "projects": { '$elemMatch': { "projectId": _byid(pid), "isManager": 1 } } })
for value in proj:
if str(value['projects']['projectId']) == pid:
if value['projects']['isManager'] == 1:
masterProjects = True
return masterProjects
_byid 等价于 ObjectId
它似乎总是返回False。这是一个集合的例子。
{
"_id" : ObjectId("52cf683306bcfc7be96a4d89"),
"firstName" : "Test",
"lastName" : "User",
"projects" : [
{
"projectId" : ObjectId("514f593c06bcfc1e96f619be"),
"isManager" : 0
},
{
"projectId" : ObjectId("511e3ed0909706a6a188953d"),
"isManager" : 1
},
{
"projectId" : ObjectId("51803baf06bcfc149116bf62"),
"isManager" : 1
},
{
"projectId" : ObjectId("514362bf121f92fb6867e58f"),
"isManager" : 1
}
],
"user" : "test.user@example.com",
"userType" : "Basic"
}
检查空光标会不会更简单,如果是,我该怎么做?
【问题讨论】: