Ich habe eine Partie in Aktion Sammlung einzufügen, die wie folgt aussieht:MongoDB finden und insertMany nur, wenn die aufeinander abgestimmte Kombination kehrt nicht truthy
[
{
"userId": "57ee65fef5a0c032877725db",
"postId": "57f63ce196b01748e4712ed3",
"type": "like"
},
{
"userId": "57ee65fef5a0c032877725db",
"postId": "57f7335223a76c0f780a44c5",
"type": "dismiss"
},
{
"userId": "57ee65fef5a0c032877725db",
"postId": "57f7335223a76c0f780a44c5",
"type": "dislike"
}
]
Schema von Aktionen Sammlungen wie folgt aussieht:
const ActionSchema = new mongoose.Schema({
userId: mongoose.Schema.Types.ObjectId,
postId: mongoose.Schema.Types.ObjectId,
type: String
}, {
timestamps: true
});
aber vor dem Einfügen möchte ich sicherstellen, dass diese spezifische "userId" und "postId" innerhalb dieses Arrays keine übereinstimmende Kombination in der action collection
von db hat. Da ein Benutzer nur eine einzelne Aktion für einen bestimmten Beitrag ausführen kann, der von anderen Benutzern veröffentlicht wurde.
die postIds bekommen und userIds separat in Arrays aus Batch und suchen mit $ und: [{{in: payload.userIds}, {$ in: payload.postIds}}] und fügen diese Dokumente nicht hinzu, während insertMany verwendet wird. Das ist ein bisschen umständlich und ist fehlerhaft. –