MongoDB jsonarray длина внутри коллекции - PullRequest
0 голосов
/ 07 июля 2019

У меня есть Коллекция в MongoDB и каждый документ в коллекции в форме ниже { "_id" : { "$oid" : "4c6d8"} , "description" : "QUESTION" , "names" : [ "A" , "B" , "C" , "D" , "E" ]} Я хочу получить количество имен

MongoClient mongoClient = new MongoClient(uri);
DB database = mongoClient.getDB(databasename);
DBCollection collection = database.getCollection(tablename);
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("description", "QUESTION");
DBCursor cursor = collection.find(whereQuery);
try {
while(cursor.hasNext()) {  
System.out.println(cursor.next())
}
} finally {
cursor.close();
}

Я не знаю, как получить количество имен.Ожидаемый результат - «5»

1 Ответ

0 голосов
/ 07 июля 2019

Я не Java-разработчик для написания Java-кода, но вот запрос, который работает в редакторе запросов MongoDB.вставьте этот запрос в свой код и проверьте его.

db.collection.aggregate([
  {
    $match: {
      "description": "QUESTION"
    }
  },
  {
    $project: {
      NumberOfItemsInArray: {
        $size: "$names"
      }
    }
  }
])

результат

[
  {
    "NumberOfItemsInArray": 5
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...