我正在尝试做一个简单的任务。 首先,在客户端,我将数据发送到服务器,然后我将这些数据插入到我的mongodb数据库中。 然后我尝试从我的数据库中获取客户数。
var express = require('express');
var MONGO_URL = "mongodb://localhost:27017/mydatabase";
var app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
mongo = require('mongodb').MongoClient,
fs = require('fs');
var countUserSuscribed =0;
//here i insert data
/* Connection events */
io.on('connection', function (client) {
console.log("User connected");
client.on('InsertNewUser', function (newUser) {
console.log("we ar in InsertNewUser event");
//////////////////////////////////////////////////////////
mongo.connect(MONGO_URL, function (err, db) {
console.log("we are connected to mongodb");
var Users = db.collection('User');
console.log("on crée la collection et on fait l'ajout");
Users.insert({ player: myP }, function (err, o) {
if (err) { console.warn(err.message); }
else { console.log("user inserted into db: user"); }
});
});
})
});
//GET COUNT USER
console.log("here we get count user");
mongo.connect(MONGO_URL, function (err, db) {
countUserSuscribed = Users.count();
console.log("we got " + countUserSuscribed + " user in mongoDB");
});
使用此代码我可以创建集合并插入文档但计数功能不起作用,我没有找到关于npm文档的太多解释。 是否可以使用其他mongodb函数而不是使用socket.io-mongodb进行插入和收集? 如果是,有人可以举例或解释我如何使用它吗?
答案 0 :(得分:1)
https://www.npmjs.com/package/mongodb-autoincrement考虑使用它。它保留所有插入文档的跟踪。此外,它还有一个方便的功能,以获得下一个计数。例子让我们说你插入了两条记录。如果你打电话给下一个计数,它将显示3.因此,要获得插入的总文件,请拨打下一个计数 - 1.有意义吗?
对不起,这是正确的。 https://www.npmjs.com/package/mongoose-auto-increment
答案 1 :(得分:1)
count函数有效,但是是异步函数并进行回调。 这是修复:
countUserSuscribed = Users.count(function (err,c) { console.log(c) });