2017-03-03 7 views
0

私は簡単な作業をしようとしています。 最初に、クライアント側では、私はサーバーにデータを送信しています。そして、これらのデータをmongodbデータベースに挿入します。 それから私は自分のデータベースからクライアントの数を取得しようとします。このコードではsocket.io-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

だから、あなただけカウントされているすべての挿入されたレコード: ここに修正ですか? – Remario

+0

はい、これは私が今やりたいことですが、それだけでなく、すべてのmongodbの挿入、作成、更新、削除、またはクエリ機能を使用できるようにしたいと考えています。 mongodb-autoincrementで可能ですか? – user3525616

答えて

1

count関数は機能しますが、非同期関数であり、コールバックをとります。

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

+0

ありがとう、そしてコールバックを追加することによって、私もcollection.find()、.insertMany()、remove()などを使用できますか? – user3525616

1

https://www.npmjs.com/package/mongodb-autoincrementこれを使用することを検討してください。挿入されたすべてのドキュメントを追跡します。さらに、次のカウントを取得するのに便利な機能も備えています。たとえば、2つのレコードを挿入したとします。次のカウントを呼び出すと、3が表示されます。挿入された合計ドキュメントを取得する前に、次のカウントを取得します。

ご迷惑をおかけいたします。 https://www.npmjs.com/package/mongoose-auto-increment

+0

モンゴースの自動インクリメントを使用 – Remario

+0

試してみてください... – Remario

+0

それに応じてそれをしましたか? – Remario

関連する問題