![](/img/trans.png)
[英]How to get aggregation of child collection in mongodb and apply $count is not working
[英]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.