为什么我在$或$和查询中出现语法错误?
问题描述:
Mongo不断给我这条线上的语法错误;
existingVideo = self.request.root.db.videos.find_one({ '$or' : [ { '_id' : ObjectId(video["serverVideoID"]) } , '$and' : [ { '_id' : serverAuthorID } , { 'clientGUID' : video['clientGUID'] } ] ] })
但我看不出它有什么问题。它看起来对我有效,但任何人都可以在这里发现错误?
答
看起来您缺少$和子句中的一组{ }
。
您的查询应该是:
existingVideo = self.request.root.db.videos.find_one(
{ '$or' :
[
{ '_id' : ObjectId(video["serverVideoID"])
} ,
{'$and' :
[ { '_id' : serverAuthorID } , { 'clientGUID' : video['clientGUID'] }
]
}
]
})
'{ '$或':[{“'你确定你的阵列是否正确关闭? – Shaheer 2012-08-12 05:32:32
您需要在{}中包含整个$和:..表达式,即在末尾添加{之前的$和和之间的]以及]。 – 2012-08-12 06:01:02
@AsyaKamsky如果你在一个答案中重新写我的行我会给你一个绿色支票 – zakdances 2012-08-12 06:05:51