簡體   English   中英

用socket.io-mongodb獲取計數集合

[英]get count collection with socket.io-mongodb

我正在嘗試做一個簡單的任務。 首先,在客戶端,我將數據發送到服務器,然后將這些數據插入到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");

});

使用此代碼,我可以創建集合並插入文檔,但是count函數不起作用,並且我在npm文檔中找不到太多解釋。 除了使用socket.io-mongodb進行插入和收集之外,還可以使用其他mongodb函數嗎? 如果是這樣,有人可以舉一個例子或向我解釋如何使用它嗎?

https://www.npmjs.com/package/mongodb-autoincrement考慮使用它。 它跟蹤所有插入的文檔。 此外,它還具有方便的功能,可獲取下一個計數。 舉例來說,您插入了兩條記錄。 如果您呼叫下一個計數,它將顯示3。首先獲取要插入的文檔總數,然后呼叫獲取下一個計數-1.有意義嗎?

對不起,這是正確的。 https://www.npmjs.com/package/mongoose-auto-increment

count函數可以工作,但是是異步函數,需要回調。 解決方法:

countUserSuscribed = Users.count(function (err,c) { console.log(c) });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM