mongo shell - 访问数据库集合

Posted

技术标签:

【中文标题】mongo shell - 访问数据库集合【英文标题】:mongo shell - Accessing a databases collection 【发布时间】:2017-10-16 02:35:44 【问题描述】:

问题

我已经在我的 MAC OSX 环境中成功启动了mongo shell。我正在为以下链接和文档提供资源,以找出进入数据库、然后是集合、然后在集合中查询文档的简单任务: Accessing a database 来自 MongoDB 文档, Accessing a collection and documents,在 *** 上,Accessing a collection 来自 Tutorials Point。

我通过PyMongo API 创建并加载了数据库。这成功创建了一个名为UCI-Database 的数据库,一个名为income 的集合,并用来自.csv 文档的一堆文档(行)填充它。

到目前为止..

这些是我的结果...

Blakes-MacBook-Pro:nosql bmc$ mongo 127.0.0.1:27017
MongoDB shell version v3.4.4
connecting to: 127.0.0.1:27017
MongoDB server version: 3.4.4
Server has startup warnings: 
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] 
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] 
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] 
2017-05-16T12:22:10.147-0400 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs
UCI-Database   0.006GB
admin          0.000GB
local          0.000GB
test-database  0.000GB
> use UCI-Database
switched to db UCI-Database
> show collections
income
profiles
> 

income 肯定是我创建的集合,用于存储来自 UCI 成人收入存储库的行。如mongo db documentation中所述:

db.collection.find(query, projection)

是查询集合的语法。

我的最佳尝试

> db.UCI-Database.income.find("age":35)
2017-05-16T16:38:00.846-0400 E QUERY    [thread1] ReferenceError: Database is not defined :
@(shell):1:1
> 

任何反馈都是有帮助的。

【问题讨论】:

【参考方案1】:

问题是你没有做

db.collection.find(query, projection)

要查询要从命令中删除数据库名称的集合,即

use UCI-Database
db.income.find("age":35)

【讨论】:

成功了。这是一个非常有帮助的评论。你有什么好的资源来学习查询并更熟悉 mongodb 吗?像 countdistinct 这样的东西在 SQL 中? @bmc university.mongodb.com 提供的这些课程非常棒。我推荐 M101 课程来启动和运行 mongodb

以上是关于mongo shell - 访问数据库集合的主要内容,如果未能解决你的问题,请参考以下文章

Mongo Shell CRUD操作

在 Mongo 中,如何显示集合的索引? [复制]

在 nodejs 脚本中列出 mongo 数据库中的所有集合

mongo 的基本操作

Mongo Shell 不会使用 find() 查询返回所有匹配的文档

解决couldn't connect to server 172.21.4.208:27 017 at src/mongo/shell/mongo.js:147