na tym stanowisku MongoDB finding nested elements, autor twierdzi, że struktura dokumentu MongoDB jest
car : { "$ref" : "cars" , "$id" : { "$oid" : "4e8478ace4b0dea06288ad63"}}
Kiedy próbowałem odtworzyć problem, ja spotkałem jakieś dziwne zachowania z wstawką MongoDB
Po uruchomieniu załącza się powyżej przykładowych danych, mam następujący błąd
> db.sample.insert({car:{ "$ref" : "cars" , "$id" : { "$oid" : "4e8478ace4b0dea06288ad63"}}})
Tue Jan 24 14:09:07 uncaught exception: field names cannot start with $ [$oid]
mówi, że nazwy pól nie mogą zaczynać się $
.
Jeśli ów przypadku, nie powinien działać, jeśli mogę usunąć $
z oid i lewo pozostała $ref
& $id
nietknięty
> db.sample.insert({car:{ "$ref" : "cars" , "$id" : { "oid" : "4e8478ace4b0dea06288ad63"}}})
> db.sample.find()
{ "_id" : ObjectId("4f1e6fbc403aae757ec6dea5"), "car" : { "$ref" : "cars", "$id" : { "oid" : "4e8478ace4b0dea06288ad63" } } }
zaskakująco to działało. Teraz przyjmuje pola zacząć $
Również gdy próbowałem to zapytanie
> db.sample.insert({ "$ref" : "cars" })
document to insert can't have $ fields
mam błąd z powrotem.
Nie rozumiem, co to powoduje? Czy ktoś ma jasny pomysł?
Tak, to jest powód ..dziękuję – RameshVel
czy istnieje sposób, aby przypadkiem DBRefs? – Backlit
@Backlit: Przykro mi, że nie rozumiem tego pytania. Chcesz zmienić składnię plików dbrefs? Upewnij się, że rozumiesz, że nie musisz używać dbrefs - w rzeczywistości zazwyczaj nie jest to wymagane, a oficjalne dokumenty zalecają stosowanie prostych bezpośrednich linków, takich jak 'UserId: 423434'. – mnemosyn