2

マングースの混合フィールドの配列に通常のオブジェクトをプッシュできません。

私はこれを試しています:

ME.update({_id: eventid},
          {$push: { rawdata: {x: packet.x, y: packet.y} }},
          {upsert:true}, function(err, data) {  
            console.log(err);
            }
    });

ただし、これにより、mongodbデータベースにIDの配列が作成されるだけです。

[rawdata] => Array (
[0] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a13ebe522960000005
    )
)
[1] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a13ebe522960000006
    )
)
[2] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a23ebe522960000007
    )
)
[3] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a23ebe522960000008
    )
)
[4] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a23ebe522960000009
    )
)
[5] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a33ebe52296000000a
    )
)
[6] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a33ebe52296000000b
    )
)
[7] => Array (
    [_id] => MongoId Object (
        [$id] => 50f476a33ebe52296000000c
    )
)

まったく期待していなかった。何が問題なのですか?

最初に「rawdata」スキーマを作成します:(ここでは空のオブジェクトリテラルを使用し、Schema.Types.Mixedも使用しました)

{ rawdata: { type: {} } }

次に、それをより大きなスキーマに追加すると、次のようになります。

rawdata: 
[ { paths: [Object],
   subpaths: {},
   virtuals: [Object],
   nested: {},
   inherits: {},
   callQueue: [],
   _indexes: [],
   methods: {},
   statics: {},
   tree: [Object],
   _requiredpaths: undefined,
   options: [Object] } ],
4

0 に答える 0