【发布时间】:2019-02-14 10:08:14
【问题描述】:
我习惯于使用 firebase,我可以像这样通过从数据库中获取数据来直接访问文档。
db.collection('collectionName/documentID').get();
我似乎找不到任何有关在 mongodb 中执行类似操作的文档。我是否必须使用查找查询从 mongodb 中获取数据或者我错过了什么?谢谢
【问题讨论】:
标签: mongodb mongodb-atlas mongodb-stitch
我习惯于使用 firebase,我可以像这样通过从数据库中获取数据来直接访问文档。
db.collection('collectionName/documentID').get();
我似乎找不到任何有关在 mongodb 中执行类似操作的文档。我是否必须使用查找查询从 mongodb 中获取数据或者我错过了什么?谢谢
【问题讨论】:
标签: mongodb mongodb-atlas mongodb-stitch
我在想
const collection = db.collection('collectionName');
collection.findOne({_id: ObjectId('documentID'); });
【讨论】:
由于 mongo consolse 是一个交互式 javascript shell,一种方法是创建一个类似的方法:
function collectionNameGet(idToFind) {
return db.collection.find({_id: idToFind });
}
【讨论】:
在mongo shell中你可以直接获取如下:
db.st4.find({"_id" : "1234"})
结果集:
{“_id”:“1234”,“raw”:{“meas”:{“meas1”:{“data”:“blabla”},“mesa2”:{“data”:“foo”}} } }
或者默认 mongo id 为:
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 shell上,在上面的查询之前执行以下步骤:
use test
db.st1.insert({"name" : "Just a name", "users" : [ "user1", "user2" ] })
然后你可以查询默认_id生成的mongo,你可以简单的查询得到最近添加到集合st1中的文档如下:
db.st1.find().sort({_id:-1}).limit(1)
希望这将帮助您在 mongo shell 上进行一些基本查询
【讨论】: