我正在使用数据库MongoDB,并且尝试运行将检查两件事的查询。

查询时间戳大于时间,并且服务器不等于名称。

在if语句中看起来像这样

if (timestamp > date && !server.equalsIgnoreCase("name")


这是我用来查询的代码

List<BasicDBObject> queryList = new ArrayList<>();
queryList.add(new BasicDBObject("timestamp",new BasicDBObject("$gt", lastCheck)));
queryList.add(new BasicDBObject("server",new BasicDBObject("$not","Dev")));
BasicDBObject query = new BasicDBObject("$and",queryList);


运行代码时出现此错误

Caused by: com.mongodb.CommandResult$CommandFailure: command failed [count]: {                         "serverUsed" : "localhost/127.0.0.1:27017" , "errmsg" : "exception: invalid use of $not" , "code" : 13041 , "ok" : 0.0}


我知道我错误地使用了$ not运算符,但希望有人可以帮助我

最佳答案

只需使用$ne(不等于)即可,如here所示。

关于java - MongoDB查询无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20748140/

10-10 09:20