Получить _id без ObjectId из MongoDB - PullRequest
1 голос
/ 27 апреля 2020

Я пытаюсь получить _id из коллекции, не получая часть ObjectId.

Когда я пытаюсь сделать запрос следующим образом:

db.collection.aggregate([
    {'$unwind': '$_id'}, 
    {
        '$project': {
            '_id': '$_id'
        }
    }
])

Это возвращает:

ObjectId("51234yhf789")
ObjectId("51234dff779")
ObjectId("51234yhf745")
ObjectId("51234dff123")
ObjectId("51234d45123")

Даже когда я пытаюсь: '_id': '$_id'.valueOf(), я получаю то же самое .

Как мне получить:

51234yhf789
51234dff779
51234yhf745
51234dff123
51234d45123

Нужна помощь для MongoDB V3.6 и ниже

1 Ответ

0 голосов
/ 27 апреля 2020

В версии MongoDB> 4.0 вы можете использовать $ toString для преобразования ObjectId() в строку:

db.collection.aggregate([
    {'$unwind': '$_id'}, 
    {
        '$project': {
            '_id': {$toString : '$_id' }
        }
    }
])
...