Czy mówisz, że chcesz wstawić tylko wtedy, gdy „dane” są unikalne? Jeśli tak, czy możesz utworzyć unikalne ograniczenie dla „danych” i zaktualizować je za pomocą safeMode?
Pokusiłbym się również o zorganizowanie twojego klucza złożonego w ten sposób;
db.so.insert(
{
_id: {
p0:1,
p1:0,
p2:0,
p3:0,
p4:0,
p5:0,
p6:0,
p7:0,
},
data:"apiceofdata",
}
);