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

オブジェクトフィールドの順序を変更するmongodbupdate

    MongoDBプロジェクション を使用できます 同様に。 (推奨される方法)

    以下に例を示します:

    db.collection.find({},{
       "Airport":1,
       "Day":1,
       "Humidity":1,
       "Sea Level Pressure":1,
       "State":1,
       "Station Pressure":1,
       "Temperature":1,
       "Time":1,
       "Wind Direction":1,
       "Wind Speed":1,
       "_id":1,
       "month_high":1
    });
    

    期待どおりの出力が得られます。つまり

    {
       "Airport":"ORL",
       "Day":8,
       "Humidity":55,
       "Sea Level Pressure":196,
       "State":"Florida",
       "Station Pressure":29.97,
       "Temperature":82,
       "Time":1553,
       "Wind Direction":170,
       "Wind Speed":5,
       "_id":ObjectId("5340eff554f98e32c5990b4f"),
       "month_high":true
    }, ...
    

    もう1つの方法は、ドキュメントをNode.jsに取り込むと、JSONでフィールドを並べ替えることができます。

    例:

    var json = {"name": "David", "age" : 78, "NoOfVisits" : 4   };
    console.log(json);
    //outputs - Object {name: "David", age: 78, NoOfVisits: 4}
    //change order to NoOfVisits,age,name
    
    var k = JSON.parse(JSON.stringify( json, ["NoOfVisits","age","name"] , 4));
    console.log(k);
    //outputs - Object {NoOfVisits: 4, age: 78, name: "David"} 
    

    必要なキーの順序を配列に入れて、関数に指定します。次に、結果を解析してJSONに戻します。

    発生する理由:

    MongoDBは、特定のパディング係数に基づいて新しいドキュメント用のスペースを割り当てます。更新によってドキュメントのサイズが最初に割り当てられたサイズを超えて大きくなると、ドキュメントはコレクションの最後に移動されます。同じ概念がドキュメントのフィールドにも当てはまります。

    あなたが本当に興味があり、それを掘り下げたいのであれば、ここにもっと情報



    1. Mongodbのクラッシュでシグナル15が発生しました(終了)

    2. mgoGoサーバーで開いているファイルが多すぎます

    3. mongodb geoNear vs near

    4. 2番目のネストされた配列内のプロパティをフィルタリングするプロジェクト