Доступ к документу напрямую по ID

Я привык работать с Firebase, где я могу получить доступ к документу напрямую, выбирая данные из БД, вот так.

db.collection('collectionName/documentID').get();

Кажется, я не могу найти какую-либо документацию о том, чтобы сделать что-то подобное в mongodb. Нужно ли использовать запрос поиска для получения данных с mongodb или я что-то пропустил? Спасибо

3 ответа

Так как Mongo Consolse является интерактивной оболочкой JavaScript, одним из способов было бы создать метод, подобный следующему:

function collectionNameGet(idToFind) {
  return db.collection.find({_id: idToFind });
}

В оболочке Монго вы можете получить его напрямую, как показано ниже:

db.st4.find ({"_ id": "1234"})

Набор результатов:

{"_id": "1234", "raw": {"Meas": {"Meas1": { "data": "blabla" }, "mesa2": { "data": "foo" } } } }

Или по умолчанию идентификатор монго как:

db.st1.find ({"_ id": ObjectId ("5c578d57ce9ba4a066ca2fa4")})

{"_id": ObjectId ("5c578d57ce9ba4a066ca2fa4"), "name": "Просто имя", "users": [ "user1", "user2" ] }

Для отображения результата в симпатичном формате

db.st1.find({"_id": ObjectId("5c578d57ce9ba4a066ca2fa4")}).pretty()

Набор результатов:

{
    "_id" : ObjectId("5c578d57ce9ba4a066ca2fa4"),
    "name" : "Just a name",
    "users" : [
        "user1",
        "user2"
    ]
}

Вот st4 имя моей коллекции в базе данных test, так что, как только вы попали в оболочку mongo, сделайте следующие шаги, прежде чем запрос выше:

use test
db.st1.insert({"name" : "Just a name", "users" : [ "user1", "user2" ] })

и тогда вы можете запросить по умолчанию _id сгенерированный монго, вы можете просто сделать запрос, чтобы получить недавно добавленные документы в коллекции st1 как показано ниже:

db.st1.find().sort({_id:-1}).limit(1)

Надеюсь, что это поможет вам сделать некоторые основные запросы на оболочке Монго

Я думаю

const collection = db.collection('collectionName');
collection.findOne({_id: ObjectId('documentID'); });
Другие вопросы по тегам