AニュースフィードPostは '好き'MongoDBの/ C#のAPIは - ネストされた文書は
"Likes" : [
{
userid: ObjectId(ae12bcd323421223),
username: "user1",
likedate: ISODATE(xxx)
},
{
userid: ObjectId(ae12bcd323421224),
username: "user2",
likedate: ISODATE(xxx)
}
]
A人の数を持って存在している場合はどのように決定することができる唯一のポストのように一度、したがって、ユーザーID /ユーザー名は一意である必要があります。
私はAddToSetWrappedを試しましたが、DateTimeが違っていて、とにかくオブジェクトが追加されるため、明らかに失敗します。私は現在、配列にユニークなインデックスを持っていませんが、必要に応じてそれを変更することができますか?
Likesアレイ内に特定のユーザーIDが存在するかどうかを確認し、ユーザーIDがまだ存在しない場合にのみ追加します。 (1つの原子操作として、または2つの操作として)?
私は実際にそのCollection.Update(Query.And(EQ ... NE)、Update.AddToSetWrapped、SafeMode.True)が見つかりました。 safemodeパラメータを使用する必要があるため、私の使用のために良く機能しました。これはfindandmodifyで利用できません。 – reach4thelasers
申し訳ありませんが、私の悪いです。 'FindAndModify'はドキュメントも返します。これは必須ではなく、確かに高速ではありません:) – mnemosyn