第三方節點模塊,在本地主機上創建並填充mongoDB數據庫。我正在嘗試使用數據庫並從我的自定義模塊中檢索數據。即使我可以成功連接到數據庫,它也不會顯示數據庫中的集合或文檔。爲什麼我的數據庫對象的集合是空的?
我對Mongoose文檔的印象首先需要創建模式,然後爲每個我想要使用的集合創建mongoDB模型。這些模型是在第三方模塊中創建的,我想要使用的集合已經存在於數據庫中。
正如你所看到的,我對這個mongodb + mongoose + nodejs堆棧很陌生。我是否正確地在新模塊中創建模式和模型 - 這是很多代碼重複?或者我錯過了什麼?
從mongo shell我做use gtfs
然後show collections
確認gtfs數據庫不是空的。
> use gtfs
switched to db gtfs
> show collections
agencies
routes
...
然後確認有文件,在分貝爲好,
> db.routes.find({'route_id':'6182'}).pretty()
{
"_id" : ObjectId("562fcf97090e937d06a34e67"),
"route_id" : "6182",
"agency_id" : "DDOT",
...
}
我連接到數據庫,從我的自定義模塊:
var mongoose = require('mongoose');
var mongo_url = 'mongodb://127.0.0.1:27017/gtfs';
//Each connection instance maps to a single database
var db = mongoose.createConnection(mongo_url);
console.log('db -> ', db);
我的貓鼬文檔中讀到,當你創建一個連接貓鼬引導你的連接對象打開或打開方法。所以,我知道我的問題是不創建一個數據庫連接對象,但不打開它。
當我打印出來的數據庫對象時,它顯示了收藏屬性空:
db -> { connections:
[ { base: [Circular],
collections: {},
models: {},
config: [Object],
replica: false,
hosts: null,
host: 'localhost',
port: 27017,
user: undefined,
pass: undefined,
name: 'gtfs',
options: [Object],
otherDbs: [],
_readyState: 2,
_closeCalled: false,
_hasOpened: false,
_listening: false,
_events: {},
db: [Object] } ],
plugins: [],
models: {},
modelSchemas: {},
options: { pluralization: true } }
您打算只查詢數據庫中的數據,還是專門使用像Mongoose這樣的對象建模庫? – robertklep
首先查詢數據,然後創建一個新的集合並將查詢結果插入文檔。我正在使用Mongoose,因爲我使用的第三方也在使用Mongoose。它只是給了我一個起點。我不知道如何在JavaScript文件中運行mongo命令。 – melis