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

时间:2015-01-14 20:27:04

标签: java mongodb mongodb-query

我想运行一个查询,它返回一个集合的所有元素,其中

  1. 字段wasProposedmarkedByUser为真,
  2. 字段recipientEmail可以是email1@example.comemail2@example.com
  3. 在我的Java代码中,我创建了一个BasicDBObject,其toString会返回此内容:

    { 
        "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

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

1 个答案:

答案 0 :(得分:1)

在这里使用$in代替$or

可能更干净
{ 
    "wasProposed" : true , 
    "recipientEmail" : { "$in" : ["email1@example.com", "email2@example.com"] },
    "markedByUser" : true
}