我在下面的代码中遇到unknown operator: $or
错误,无法找出原因。
vc := &storers.VCategory{}
err = mndb.
C("virtualcategoryprototypes").
Find(bson.M{
"children": nil,
"deleted_by": nil,
"indexCycleNo": bson.M{"$or": []bson.M{
bson.M{"$exists": false},
bson.M{"$lt": cycle}}}}).
One(vc)
答案 0 :(得分:5)
$or
表达式是其他条件的序列(数组),这些条件本身有效(并且将使用逻辑OR连接进行评估),$or
表达式的结果将是逻辑AND与同一级别的其他条件连接。
因此,您必须将$or
运算符向上移动一级,其值必须是切片或数组,$or
的元素将在您的indexCycleNo: {$exists: false}
和{{{{}}中1}}:
indexCycleNo: {$lt: cycle}