我是新的mongodb,我有一个文档在我的db如下:
{“_id”:{“$oid”:“546e916cd38e0b3e0e79592f”},名称:“'hamed”,“实体:[“1”,“2”]}
现在我想阅读实体为[“1”,“2”]的aal文档,为此我尝试了以下代码:
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("test");
Set<String> colls = db.getCollectionNames();
DBCollection coll = db.getCollection("test");
DBObject oredrFields = new BasicDBObject();
oredrFields.put("entity", ":{ $in: ['1', '2'] } }");
DBCursor cursor = coll.find(oredrFields);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
但它不返回任何东西...有人能帮助我如何正确地写我的where子句吗?
$in也应该是一个BasicDBObject:
DBObject oredrFields = new BasicDBObject();
DBObject inOp = new BasicDBObject();
inOp .put("$in", new String[]{"1","2"});
oredrFields.put("entity", inOp);
您需要将查询参数作为DBObject
传递。您缺少$in运算符的DBObject
。
如果您只想要那些同时具有"1"和"2"的记录,您需要使用$all
而不是$in
,它只返回那些实体
字段包含all
元素的文档在传递的数组中。
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("test");
DBCollection coll = db.getCollection("test");
DBObject oredrFields = new BasicDBObject();
DBObject inQuery = new BasicDBObject().append("$all", new String[]{"1","2"});
oredrFields.put("entity", inQuery);
DBCursor cursor = coll.find(oredrFields);
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
问题内容: 我创建了一个包含3列的数据框:zip,lat,lng 我想选择zip = 00650的经纬度值 因此,我尝试使用: 但是它返回ArrayOutOfBound异常,因为它没有任何值。如果我删除where子句,它将运行良好。 有人可以解释我在做什么错吗? 更新: 数据框架构: 前10行是: 问题答案: 正如你可以在你的方案看是类型的,所以你的查询应该是这样的 更新: 如果您正在使用,则可以
使用Query DSL和hibernate(Spring Data JPA)构建查询,如下所示 这里的逻辑很简单:如果有一个与某个人关联的银行帐户,则按银行ID过滤结果。 实体具有一个,它包含整数值。实体可能具有也可能没有
在oracle数据库上似乎有很多查询语法来获取数据,这里我只想问一下运行良好的查询,但我完全不明白。查询如下: 从上面的查询来看,它的工作很好。但是我不明白为什么会有TO_DATE('01/01/197000:00:00','mm/dd/yyyy hh24:mi:ss和(create_date/(60*60*24)),'mm/dd/yy hh24:mi:ss') 有人能解释一下吗? 提前致谢
本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the
问题内容: 我有这个查询: 但是我想做这样的事情: 如何检查电子邮件是否存在?我要使用电子邮件,如果此字段为空,我要使用email2。我该如何完成? 问题答案: 用于选择字段,然后在其后放置该子句:
问题内容: 我们得到错误-“ where子句不明确的列’CategoryID’”。 告诉我请怎么会好? 问题答案: 您得到的错误告诉您子句中的列是不明确的,这意味着系统存在标识适当列的问题,因为存在多个列。 为了解决此问题,请使用别名指定要用于子句的列: 我还更改了查询以获取相同的结果,但我没有使用+子句+子查询的组合,而是使用了子句。使用此查询,您只需定义一次所需的内容,它将自动获取每个子类别。