0
マイMongoDBのコレクションは、このノード+のMongoDB:更新最後のオブジェクトネストされた配列に
{
channelId: int,
channelName: string,
voteHistory: [
{
createdAt: date,
votes: ['old vote','old vote','old vote']
},
{
createdAt: date,
votes: ['old vote']
},
{
createdAt: date,
votes: []
}
]
}
...
voteHistory
のように見えますがcreatedAt
(日)昇順でソートされます。 voteHistory
のLAST(最新)オブジェクトのvotes
配列にオブジェクトをプッシュしたい場合は、1回の操作でどのように行うのですか?
$のプッシュと$プルが最も簡単な方法は、2つの事業
1でそれを行うことです特異アトミック操作Iのものの一部にすることはできませんので、結果はこの
{
channelId: int,
channelName: string,
voteHistory: [
{
createdAt: date,
votes: ['old vote','old vote','old vote']
},
{
createdAt: date,
votes: ['old vote']
},
{
createdAt: date,
votes: ['new vote!!']
}
]
}
投稿が不明な場合は申し訳ありませんが、これはmongodb用です。 –
これは明らかですが、実際には常に「最後の」配列項目が常に「最初の」配列項目であることを確認するのがはるかに簡単であると結論づける既存の点または2点を指摘することができます。 MongoDBには '$ push'のための' $ position'修飾子があります。この修飾子は配列が実際に常にこの順序で確実に記録されるようにします。あなたは常に "$ push"することができます:{"voteHistory.0.votes": "新しい投票!!"あなたが私のドリフトをキャッチするならば、あなたが "追加"ではなく "前に"付いていることを確認してください。 –
@Neil funnily十分に私はすでにあなたが言ったようにあきらめることを決めました。私の配列はすでにソートされていますので、どの方向に並べ替えても問題ありません! –