ZeM*_*oon 7 mongoose mongodb node.js
我在我的node.js应用程序中使用Mongoose来模拟数据库中的两个集合,它将进行读写.还有两个集合将仅从我的应用程序中读取(这些集合的模型正在另一个应用程序中维护,它将写入它们).
如果我需要使用mongoose访问两个只读集合,那么我还必须在此应用程序中维护一个模式.我宁愿不这样做,因为架构将被维护两次,并可能导致以后的不一致.
可以通过创建Mongoose中的默认连接
Mongoose.connect(dbPath)
Run Code Online (Sandbox Code Playgroud)
给定dbPath(例如mongodb://localhost/dbname),如何使用Mongoose默认连接从我的应用程序未维护其架构/模型的集合中读取?或者我是否必须使用本机MongoDB驱动程序?
Joh*_*yHK 14
如果您只是使用Mongoose从集合中读取,则可以将架构定义留空.
因此,如果您有一个只读的集合命名test,这样的东西将起作用:
var Test = mongoose.model('Test', new Schema(), 'test');
Test.findOne({name: 'John'}, function(err, doc) { ... });
Run Code Online (Sandbox Code Playgroud)
或者为了获得更好的性能,lean()如果您不需要任何模型实例功能,请在查询链中包含:
Test.findOne({name: 'John'}).lean().exec(function(err, doc) { ... });
Run Code Online (Sandbox Code Playgroud)
如果您不使用lean(),则需要使用该get方法访问doc的属性; 例如:
doc.get('name') // instead of doc.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3785 次 |
| 最近记录: |