MongoDB - 无需应用程序的手动引用

标签 mongodb database nosql

据我了解,手动引用是指一个文档包含对另一个文档的引用。

如 MongoDB 文档中所示:

original_id = ObjectId()

db.places.insert({
    "_id": original_id,
    "name": "Broadway Center",
    "url": "bc.example.net"
})

db.people.insert({
    "name": "Erin",
    "places_id": original_id,
    "url":  "bc.example.net/Erin"
})

我能够在地点上使用查找来获取某个名称。

db.places.find({name : "Broadway Center"});

这将给出 id。然后我的应用程序可以使用这个 ID 来查询人员,看看谁住在这里?

但是,如果我没有申请。我将如何仅在 mongo shell 中执行此操作?我正在考虑使用 find,然后使用 forEach 迭代光标?但这似乎有点老套。

有什么建议吗?

最佳答案

您不需要使用 find() 中的光标进行循环,只需使用 findOne()因为此方法返回单个文档,并且您可以直接访问该文档(无需对结果应用游标方法)。在 mongo shell 中你可以这样做:

var result = db.places.findOne({name : "Broadway Center"});
if (result) {
   var place_id = result._id;
   var peopleArray = db.people.find({ "places_id": place_id }).toArray();
   if (peopleArray.length > 0) { printjson (peopleArray[0]); }
}

关于MongoDB - 无需应用程序的手动引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440073/

相关文章:

sql - 文档和图形数据库选择

mongodb - 无法连接到在docker-machine上运行的mongodb实例

node.js - mongoDB与nodejs返回数据

node.js - NodeJS和Mongo线谁上线

node.js - 减少mongodb中的值

java - 在 SQL Server 中的 JDBC 插入上自动生成 key

php - 获取数据库中的 id 以在下一页上提取相同的数据

mysql - 如何使用此 coldfusion 代码读取大型 XML 文件并将数据插入数据库?

java - 开源图数据库