Как сохранить специальные ключи в файле документов mongoDB и удалить там дополнительные ключи? - PullRequest
0 голосов
/ 13 октября 2019

предположим, что у меня есть коллекция mongoDB, в которой есть документы, подобные приведенным ниже

{
    "_id" : ObjectId("5cb2dd4d378a8e2484e7bb69"),
    "name":"ali",
    "creator" : {
        "name":"user1",
        "code":2,
        "type" : "desk",
        "type_id" : "desk::bb36640a-e384-45ec-aafa-ce71b724c389"
    },
     "creatorPosition" : {
        "name":"user2",
        "role":"admin",
        "type" : "position",
        "type_id" : "position::9f711bb3-3aad-4936-b75a-4ddd024b4bb1"
    },
     "creatorDetails" : {
        "name":"user1",
        "type" : "deskUserAssignment",
        "type_id" : "deskUserAssignment::dd46fa14-0fd3-43d7-8312-471bc253ee80"
    }
}

Я хочу сохранить два значения ключа ("type", "type_id") из каждого поля и удалить дополнительные ключи (например, "name", "code", "role")

Могу ли я обработать это в одном монго-запросе?

Кроме того, я хочу написать этот код в java

1 Ответ

0 голосов
/ 13 октября 2019

Самый простой способ сделать это - использовать проекцию, которую MongoTemplate предлагает

Например, включая поля, использующие org.springframework.data.mongodb.core.query.Query и org.springframework.data.mongodb.core.MongoTemplate для получения результатов:

Query query = new Query(); query.fields().include("creator.type").include("creator.type_id"); query.fields().include("creatorPosition.type").include("creatorPosition.type_id"); query.fields().include("creatorDetails.type").include("creatorDetails.type_id"); List<Document> documents = mongoTemplate.find(query, Document.class, "your_collection");

Для получения дополнительной информации см. Эту статью: https://www.mkyong.com/mongodb/spring-data-mongodb-select-fields-to-return/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...