Ich habe diese beiden Dokumente in meiner mongoDB Datenbank:MongoDB - seltsame Verhalten der Abfrage
db.DocumentFile.find().pretty()
{
"_id" : ObjectId("587f39910cc0fec092bdb10c"),
"_class" : "com.smartinnotec.legalprojectmanagement.dao.domain.DocumentFile",
"fileName" : "DocumentFile1",
"ending" : "jpg",
"projectId" : "587f39910cc0fec092bdb10b",
"active" : true,
"userIdBlackList" : [
"587f39910cc0fec092bdb10a"
]
}
{
"_id" : ObjectId("587f39910cc0fec092bdb10d"),
"_class" : "com.smartinnotec.legalprojectmanagement.dao.domain.DocumentFile",
"fileName" : "DocumentFile2",
"ending" : "jpg",
"projectId" : "587f39910cc0fec092bdb10b",
"active" : true,
"userIdBlackList" : [ ]
}
ich diesen Code haben, um Menge der Abfrage zu erhalten:
final Query query = new Query();
query.addCriteria(Criteria.where("userIdBlackList").nin(userId));
final Long amount = mongoTemplate.count(query, DocumentFile.class);
return amount.intValue();
Die Menge ist 2 in dieser Fall, was ist falsch - es 1. Die Abfrage in Query-Objekt wie folgt aussieht sein soll:
Query: { "userIdBlackList" : { "$nin" : [ "587f39910cc0fec092bdb10a"]}}
Wenn ich diese Abfrage und machte eine Abfrage für die mongodb Konsole wie folgt kopieren:
db.DocumentFile.find({ "userIdBlackList" : { "$nin" : [ "587f39910cc0fec092bdb10a"]}}).pretty()
ich eine Menge von zwei Kindern, was falsch, wenn da ein Dokument 587f39910cc0fec092bdb10a in userIdBlackList umfasst -> es sein sollte.
Mit dieser Abfrage Befehl:
db.DocumentFile.find({userIdBlackList: { "$nin": ["587f39910cc0fec092bdb10a"] } }).pretty();
ich das richtige Ergebnis, ich bin wirklich im Moment verwirrt. Hat jemand eine Idee? Vielleicht ist das Problem, dass einmal userIdBlackList ist mit Anführungszeichen ("userIdBlackList") und das andere Mal ist es nicht.
Speichern Sie MongoIds im userIdBlackList-Array-Feld? Oder Schnur? –
Strings, die ID Strings uf den Benutzern – quma
Es ist wirklich verrückt, ich benutze Benutzerzeichenfolgen, es funktioniert nicht, als @DBRef zu Benutzerobjekt, funktioniert nicht, jetzt ObjectId, immer noch nicht funktioniert. Eigentlich ist es nicht klar für meine, warum dies solche Probleme macht mit Spring Data und MongoDB – quma