关于访问节点中的Mongoose数据库有一个相当基本的问题。因此,在服务器文件中,我已经进行了必要的导入和所有操作,并且已经连接到数据库,如下所示:
mongoose.connect(myURL, function(err) {if(err){console.log(err)}})
当我进入数据库的终端时,它说它已连接到myUrl,然后我可以做类似的事情:
db.nameOfCollection.find("whatever")
得到我想要的。但是,现在我想在Node服务器文件中执行相同的操作,并且我对如何执行此操作感到非常困惑。当我这样做
db.collectionName.find("whatever")
它显然不起作用,因为未定义db。因此,我为我的一个集合导入了模型:
var model = require('path/to/model')
现在,当我执行console.log(model.find())
时,它当然不会给我任何数据,但是它确实在底部说了这一点:
_fields: undefined,
_update: undefined,
_path: undefined,
_distinct: undefined,
_collection:
NodeCollection {
collection:
NativeCollection {
collection: null,
opts: [Object],
name: 'nameOfCollection',
collectionName: 'nameOfCollection',
conn: [NativeConnection],
queue: [],
buffer: true,
emitter: [EventEmitter] },
collectionName: 'nameOfCollection' },
_traceFunction: undefined }
我看到它说数据库中的nameOfCollection,但是我不确定如何访问集合本身。关于我能做什么的任何想法?
答案 0 :(得分:0)
Node.JS支持非阻塞功能,您的情况将使用它。因此,您应该在Node.JS中练习一些有关回调,promise 的示例。之后,您将了解并解决它。
根据您的情况,在导入模型后:
var model = require('path/to/model')
您可以通过以下方式访问收藏集:
model.find().then(youDataYouNeed => {
console.log(youDataYouNeed)
}
由于功能find
返回了Promise,因此您可以使用 .then()并附加实现处理程序,您可以在其中获取数据该集合中的一个。