【发布时间】:2015-11-06 13:20:14
【问题描述】:
我当前的问题是 db.collection.find() mongoose 命令。我对 mongoose/mongodb 比较陌生,但我已经掌握了它的概念。这是我一直在尝试运行的测试代码:
mongoose.connect(url);
function main()
{
var db = mongoose.connection;
db.on('open', function() {
db.collection('Tweet').find({id: 631460910368956400}, function (err, data){
console.log(data);
})
/*var coll = db.collection('Tweet');
db.collection('Tweet').findOne({id: 631460910368956400},function (err, ret) {
if(err) console.log(err);
console.log(ret['id']);
//db.close();
});*/
});
}
main();
未注释掉的字段返回的数据是一个奇怪的对象:
{ connection: null,
server: null,
disconnectHandler:
{ s: { storedOps: [], storeOptions: [Object], topology: [Object] },
length: [Getter] },
bson: {},
ns: 'TEST.Tweet',
cmd: { find: 'TEST.Tweet', limit: 0, skip: 0, query: {}, slaveOk: false },
options:
{ skip: 0,
limit: 0,
raw: undefined,
hint: null,
timeout: undefined,
slaveOk: false,
db:
{ domain: null,
_events: [Object],
_maxListeners: undefined,
s: [Object],
serverConfig: [Getter],
bufferMaxEntries: [Getter],
databaseName: [Getter],
等等等等……它会持续更长的时间。
IP 地址是成功连接的远程连接。我可以执行添加和删除文档之类的操作,但实际上无法从 javascript 查看文档。我知道这是由于某种异步问题引起的,但是我不确定如何解决它。此外,注释掉的 .findOne() 代码似乎完全可以在上面的代码中提取数据。
.find() 函数的代码有什么问题?解释为什么当前的数据检索错误也会很好。
感谢您的帮助!
【问题讨论】:
-
这是因为您从本机驱动程序返回了数据库对象。它返回一个“光标”,即您所说的“奇数对象”。您可能需要 mongoose 模型方法。
-
对于 Mongoose 和 native-mongodb-driver 而言,这是非常糟糕的文档。浪费 3 个小时做错误的事情,因为他们在多个地方都有不良信息。
标签: node.js mongodb mongoose mongodb-query