2017-12-21 6 views
0

誰かがこれを私に説明できますか?私が読んでいるすべてのドキュメントでは、use [database]コマンドを発行するだけで、mongoにdbが作成されると書いてあります。Mongodb作成データベースが機能しませんか?

しかし、これを見て取る:私はmongodb-coreを使用してデータベースに対してテストを実行すると

22:13 $ mongo 
MongoDB shell version v3.6.0 
connecting to: mongodb://127.0.0.1:27017 
MongoDB server version: 3.6.0 
Server has startup warnings: 
2017-12-19T08:36:34.901-0600 I CONTROL [initandlisten] 
2017-12-19T08:36:34.901-0600 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 
2017-12-19T08:36:34.901-0600 I CONTROL [initandlisten] **   Read and write access to data and configuration is unrestricted. 
2017-12-19T08:36:34.901-0600 I CONTROL [initandlisten] 
> use spiTest 
switched to db spiTest 
> show dbs 
admin 0.000GB 
config 0.000GB 
local 0.000GB 
> db 
spiTest 
> 

はまた、それは私がそれを作成するにはどうすればよい「Database spiTest doesn't exist

を言って、エラーを投げていますか?

+1

データベース内の任意のコレクションに少なくとも1つのドキュメントを挿入します。 "use spiTest" then "db.sipTestColl.insert({b:1})" – Shubham

答えて

0

これによれば、まずレコードを作成する必要がありますか? https://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

> db.users.save({username:"mkyong"})

これが正しければ、それはかなり愚かです。

これをここに残しておくと、より良い回答が得られるはずです。

+1

'mongo'シェルの' use '構文は、使用するデータベース名前空間を選択し、ディスク上に明示的にデータファイルを作成しません。 [MongoDBのドキュメント](https://docs.mongodb.com/v3.0/core/databases-and-collections/#create-a-database)に従って: "データベースが存在しない場合、MongoDBはデータベースを作成しますそのデータベースのデータを最初に格納するときに使用します。これには、文書の挿入、索引の作成、コレクションの作成、またはデータを格納するその他のアクティビティーが含まれます。たとえば、 'db.createCollection( 'foo')'を使って新しい空のコレクションを作成することができます。 – Stennie

+0

これが適切な振る舞いであるかどうかは疑問ですが、このアプローチでは、永続化する必要があるデータがある場合にのみデータファイルが作成されることを意味します。 SQL世界では、データベースの「使用」と「作成」のアクションも別々です。 MongoDB(3.6のように)は、SQLの 'CREATE DATABASE'コマンドに相当するものを持っておらず、必要に応じてこのアクションを暗黙的に実行します。 – Stennie

関連する問題