wik*_*ont 5 random collections mongodb node.js
如何从 MongoDB 的集合中随机获取单个文档。
我该如何修复代码。
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
if(err) throw err;
var query = { };
var total = db.collection('cities').count();
var random = Math.floor(Math.random()*total);
db.collection('cities').find({}).skip(random).limit(1).toArray(function (err, doc) {
if(err) throw err;
console.dir(doc);
db.close();
});
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:未定义不是函数
$ node afindone
c:\Users\Administrator\node_modules\mongodb\lib\mongodb\connection\base.js:245
throw message;
^
TypeError: undefined is not a function
at c:\Users\Administrator\node_modules\mongodb\lib\mongodb\collection\commands.js:52:5
at c:\Users\Administrator\node_modules\mongodb\lib\mongodb\db.js:1131:7
at c:\Users\Administrator\node_modules\mongodb\lib\mongodb\db.js:1847:9
at Server.Base._callHandler (c:\Users\Administrator\node_modules\mongodb\lib\mongodb\connection\base.js:445:41)
at c:\Users\Administrator\node_modules\mongodb\lib\mongodb\connection\server.js:478:18
at MongoReply.parseBody (c:\Users\Administrator\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5)
at null.<anonymous> (c:\Users\Administrator\node_modules\mongodb\lib\mongodb\connection\server.js:436:20)
at emit (events.js:95:17)
at null.<anonymous> (c:\Users\Administrator\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:201:13)
at emit (events.js:98:17)
Run Code Online (Sandbox Code Playgroud)
- - - - - - - - - - - - - - - - - - - 好的。我解决了。----------------------------
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
if(err) throw err;
var cities = db.collection('cities');
var query = {};
var cursor = cities.find(query);
var total,random;
cities.count(function(err, count) {
random = Math.floor(Math.random()*count);
cursor.sort({_id : -1});
cursor.skip(random);
cursor.limit(1);
cursor.each(function(err, doc) {
if(err) throw err;
if(doc == null) {
return db.close();
}
console.dir(doc);
});
});
});
Run Code Online (Sandbox Code Playgroud)
这是如何获取随机 n 个 mongodb 文档的答案。 MongoDB:如何在 100 个集合中找到 10 个随机文档?
创造魔法的线条:db.products.aggregate([{$sample: {size: 10}}]);
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |