2

mongodbは、すべてのドキュメントを更新するのではなく、最初の1つまたは2つのドキュメントを更新するだけのmultitrueで更新します。これがクエリです。使用している制限のせいですか?とにかく、制限を削除しましたが、一致基準で見つかった31個のドキュメントすべてがまだ更新されていません。マングースの更新構文に何か問題がありますか?

db.update({biztype:msg.biztype, 'g_location': {$near: [msg.lng, msg.lat], $maxDistance:10/111.12}},{
                        $push:{fromusers:{
                            ip: ip,
                            msg: msg.msg,
                            u_name: msg.name,
                            u_mobile: msg.mobile,
                            u_email: msg.email,
                            comment_date: new Date()
                        }}
                    }, false, true).
                    limit(10);
4

1 に答える 1

4

これがMongooseモデルであることを理解した上で、 Mongooseアップデートdbと互換性があるようにパラメータリストを変更する必要があります。

db.update({biztype:msg.biztype, 'g_location': {$near: [msg.lng, msg.lat], $maxDistance:10/111.12}},
    {
        $push:{fromusers:{
            ip: ip,
            msg: msg.msg,
            u_name: msg.name,
            u_mobile: msg.mobile,
            u_email: msg.email,
            comment_date: new Date()
        }}
    },
    { multi: true }, // <== This boolean option goes into the options parameter
    function (err, numberAffected) {
        // Your callback, if needed
    }
);
于 2012-08-15T17:34:49.253 に答える