マングースの混合フィールドの配列に通常のオブジェクトをプッシュできません。
私はこれを試しています:
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] } ],