sql >> データベース >  >> NoSQL >> MongoDB

MongoDBv2.4.9ブールフィールドで並べ替え

    上記のコードは機能し、データは不良でした。上記のコメントで書いたように、一部のドキュメントには文字列(ブール値ではない)としてisFooが含まれていたため、結果が混在していました。

    フィールドのタイプを文字列からブール値に変更する必要があったので、これを試しました:

    db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) {   x.isFoo = new Boolean(x.isFoo);    db.users.save(x); });
    

    しかし、それはすべてのisFooフィールドをオブジェクトに変えただけです。

    この問題に対処するのに本当にうんざりしていたので、次を使用してすべてのisFooフィールドをfalseに設定し、変更を手動で処理しました。

    db.users.find( { 'isFoo' : { $exists : true } } ).forEach( function (x) {   x.isFoo = false;    db.users.save(x); });
    

    これは非常に面倒でした。




    1. MongoDBJavaドライバー更新サブドキュメント

    2. Norm.MongoException:接続プールから接続を取得しようとしている接続タイムアウト

    3. Meteor:クライアントからMongoコレクションへのファイルのアップロードvsファイルシステムvs GridFS

    4. $incで2回実行されているMongoDBのUpdateMany