1

彼ら

node.jsでは、mongolianまたはmongo-nativeはグループ機能をサポートしていませんか?

モンゴネイティブコード、

var mongodb = require('mongodb');
var Db      = mongodb.Db;
var Server  = mongodb.Server;
var db  = new Db( "test", new Server( "localhost", 27017 ), { w:0 } );

db.collection( "user" ).group( {
    key: { },
    reduce: function ( curr, result ) { },
    initial: { }
} );

結果、

/node/ex1/node_modules/mongodb/lib/mongodb/collection.js:1400
      if(err != null) return callback(err);
                             ^
TypeError: undefined is not a function
    at Collection.group.scope (/node/ex1/node_modules/mongodb/lib/mongodb/collection.js:1400:30)
    at Db._executeQueryCommand (/node/ex1/node_modules/mongodb/lib/mongodb/db.js:1812:12)
    at Collection.group (/node/ex1/node_modules/mongodb/lib/mongodb/collection.js:1399:13)
    at Object.<anonymous> (/node/ex1/repository.js:34:25)

およびmongolignコード、

var Mongolian   = require( "mongolian" );
var server  = new Mongolian;
var db      = server.db( "test" );

db.collection( "user" ).group( {
    key: { },
    reduce: function ( curr, result ) { },
    initial: { }
} );

結果、

db.collection( "user" ).group( {
                        ^
TypeError: Object Mongolian[mongo://localhost:27017]/assistor.user has no method 'group'
    at Object.<anonymous> (/node/ex1/repository.js:77:25)
4

2 に答える 2

3

docsに見られるように、ネイティブ ドライバーでサポートされていますが、groupメソッドはkeyreduceシェルのようにオブジェクト内のフィールドではなく、個別のパラメーターとして 、 などを取ります。

db.collection("user").group(
    {},
    {},
    { sum: 0 },
    function (curr, result) { },
    function (err, result) {
        // Process the result
    }
);
于 2013-01-19T14:57:43.927 に答える
0

npm のモンゴル語パッケージは更新されていないため、git リポジトリをクローンしてから npm にリンクする必要があります。

それからドキュメントは完全ではありません。このようなことをしなければなりません。それを機能させるのに時間がかかりました。

var Mongolian   = require( "mongolian" );
var server  = new Mongolian;
var db      = server.db( "test" );

db.collection( "user" ).group( {
    ns: "user",
    key: { },
    reduce: function ( curr, result ) { },
    initial: { }
   },function(error,post){
      if(error) console.log(error);
      //do something with post.retval
   }
);
于 2013-05-21T03:06:27.163 に答える