mongo Java 按数组搜索
mongo Java search by array
我已经和 mongo 一起工作了几个月,现在我很挣扎。
这是我的数据库的文档示例:
"_id" : ObjectId("5732d96fed40761e640a3f3e"),
"_familyId" : "12345",
"_applications" : [
{
"_applicationRID" : "123456",
"_applicationDate" : "01012000",
"_isRepresentative" : false,
"_applicationId" : {
"CC" : "AB",
"SN" : "123456789",
"KC" : "A"
},
"_publications" : [
{
"_publicationRID" : "123456789",
"_publicationDate" : "01012000",
"_flaId" : "AB123456789A",
"_publicationId" : {
"CC" : "AB",
"SN" : "1234567",
"KC" : "B"
},
[...]
现在,我正在尝试对数组执行 Java 中的 collection.find()
。
我知道 _publicationId
中包含的所有字段,我需要在 _publicationId
上搜索,因为它有索引但没有其中的字段。
在 shell 中将是:
db.collection.find({
"_applications._publications._publicationId": {
"CC": "AB",
"SN": "1234567",
"KC": "B"
}
})
这很好用。
使用java,我找不到正确的语法:
collection.find("_applications._publications._publicationId", ??? )
您应该尝试下一种类型的查询,它实际上与您在 java:
中的查询完全相同
DBObject query = new BasicDBObject(
"_applications._publications._publicationId",
new BasicDBObject("CC", "AB").append("SN", "1234567").append("KC", "B")
);
DBCursor cursor = collection.find(query);
我已经和 mongo 一起工作了几个月,现在我很挣扎。
这是我的数据库的文档示例:
"_id" : ObjectId("5732d96fed40761e640a3f3e"),
"_familyId" : "12345",
"_applications" : [
{
"_applicationRID" : "123456",
"_applicationDate" : "01012000",
"_isRepresentative" : false,
"_applicationId" : {
"CC" : "AB",
"SN" : "123456789",
"KC" : "A"
},
"_publications" : [
{
"_publicationRID" : "123456789",
"_publicationDate" : "01012000",
"_flaId" : "AB123456789A",
"_publicationId" : {
"CC" : "AB",
"SN" : "1234567",
"KC" : "B"
},
[...]
现在,我正在尝试对数组执行 Java 中的 collection.find()
。
我知道 _publicationId
中包含的所有字段,我需要在 _publicationId
上搜索,因为它有索引但没有其中的字段。
在 shell 中将是:
db.collection.find({
"_applications._publications._publicationId": {
"CC": "AB",
"SN": "1234567",
"KC": "B"
}
})
这很好用。
使用java,我找不到正确的语法:
collection.find("_applications._publications._publicationId", ??? )
您应该尝试下一种类型的查询,它实际上与您在 java:
中的查询完全相同DBObject query = new BasicDBObject(
"_applications._publications._publicationId",
new BasicDBObject("CC", "AB").append("SN", "1234567").append("KC", "B")
);
DBCursor cursor = collection.find(query);