Доступ к документу напрямую по 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'); });