com.mongodb.MongoException:无效的运算符:$or

com.mongodb.MongoException: invalid operator: $or

我要运行查询,其中returns一个集合的所有元素,其中

  1. 字段 wasProposedmarkedByUser 为真并且
  2. 字段 recipientEmailemail1@example.comemail2@example.com

在我的 Java 代码中,我创建了一个 BasicDBObject,它的 toString returns 这个:

{ 
    "wasProposed" : true , 
    "recipientEmail" : 
    { 
        "$or" : 
            [ 
                { "recipientEmail" : "email1@example.com" } , 
                { "recipientEmail" : "email2@example.com" }
            ]
    }, 
    "markedByUser" : true
}

当我 运行 这个查询 (rcoll.find(query).sort(sortclause).limit(ITEMS_TO_SHOW)) 时,我得到错误 com.mongodb.MongoException: invalid operator: $or.

如何修改上面的查询以消除此错误?

在这里使用 $in 代替 $or 可能更简洁:

{ 
    "wasProposed" : true , 
    "recipientEmail" : { "$in" : ["email1@example.com", "email2@example.com"] },
    "markedByUser" : true
}