我如何使用 MongoDB 在 NodeJS 中编写以下 MySQL Select?
Posted
技术标签:
【中文标题】我如何使用 MongoDB 在 NodeJS 中编写以下 MySQL Select?【英文标题】:How can i write in NodeJS with MongoDB the following MySQL Select? 【发布时间】:2016-02-20 06:02:56 【问题描述】:我想要什么:
SELECT MAX(pieces) //(to a var variable)
FROM record
WHERE ip = :ipAddress AND filename_full = :filename
:ipAddress 和文件名来自 http...感谢您的帮助
the db
我想使用的地方:
mongoose.connect('mongodb://localhost:27017/newDB', function(err,db)
if(!err)
acl = new acl(new acl.mongodbBackend(mongoose.connection.db, 'acl_'));
acl.allow('guest', 'business', 'view');
console.log(acl);
var cursor = db.collection('record').find(ip: ipAddress, filename_full: filename);
cursor.each(function (err, doc)
assert.equal(err, null);
if (doc != null)
console.dir(doc);
else
console.log("Not found");
callback();
);*/
);
【问题讨论】:
推荐阅读:docs.mongodb.org/manual/reference/sql-comparison 原来如此:docs.mongodb.org/manual/reference/sql-aggregation-comparison 【参考方案1】:您可以使用 Mongoose,它可以帮助您更轻松地使用 MongoDB。
Record.findOne(
ip: ipAdress,
filename_full: filename
).sort(
'pieces': -1
).exec(function(err, doc)
);
参考:Mongoose doc,Get max value in mongoose
【讨论】:
Record.find([ 'ip': ipAddress, 'filename_full': filename]) .sort('pieces':-1) .limit(1) .exec( function (err, recordFinal) if (err) res.send(err); console.log("PIECES: ",recordFinal.pieces); ); 但它给了我一个包含完整细节的对象,而不仅仅是碎片......我该怎么做,它只是给我碎片整数? 并写下recordFinal.pieces是未定义的 在此处使用findOne
而不是find
,否则doc
是一个数组,而不是您要查找的单个文档。
感谢@JohnnyHK 的建议。以上是关于我如何使用 MongoDB 在 NodeJS 中编写以下 MySQL Select?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 mongoose 和 NodeJs 在 Mongodb 的数组字段中插入数据
如何使用 Nodejs 在 MongoDB 中创建类似 %keyword% 的查询
如何使用 Id 使用 vuejs 编辑字段 mongodb、nodejs