Привет,
У меня проблемы с пониманием чего-то или он глючит.
Давайте начнем. Вот документация по DBRefs:
http://docs.mongodb.org/manual/reference/database-references/#dbrefs
Пишут, что структура для документа со ссылкой должна быть:
{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users"
}
}
Теперь давайте посмотрим на этот пример (example1):
https://gist.github.com/hastebrot/1170907
Когда я запускаю этот код, у меня есть что-то вроде этого:
История:
"title": "A man who cooked Nintendo",
"_creator": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"_id": {
"$oid": "52e7dceb3d9cd59c13702e3e"
},
"fans": [],
"__v": 0
Люди:
"name": "Aaron",
"age": 100,
"_id": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"stories": [],
"__v": 0
В нашей команде есть небольшое приложение, написанное на Java, которое использует библиотеку для MongoDB, но эта библиотека сохраняет данные, как в документации MongoDB:
....//other fields
"user": {
"$ref": "users",
"$id": {
"$oid": "52c6c497c08e6fcf37000001"
}
}
и я не могу заполнить данные, потому что кажется, что это работает только для реализации мангуста.
Поправьте меня, если я ошибаюсь, но для меня это похоже на то, что вы не сохраняете DBRef, как это описано в документации.
+1
Столкнувшись с той же проблемой с приложением php, использующим доктрину mongodb odm. В настоящее время я не могу использовать свою уже существующую базу данных с мангустом, потому что объекты mongodb DBRefs не используются для хранения ссылок.
Может быть, следует добавить другой тип схемы (Schema.DBRef?)?
Это загрузит документ с заданной информацией.
До сих пор нет комментариев от разработчиков Mongoose по этому вопросу? Это повторяющаяся проблема, которая продолжает возникать, когда у вас есть более одного драйвера, выполняющего запись и чтение из одной и той же базы данных.
Драйвер Node поддерживает DBRefs, и мне кажется странным, что Mongoose до сих пор не поддерживает его.
Поддержка DBRefs для заполнения на самом деле не является высоким приоритетом, поскольку документы MongoDB рекомендуют не использовать dbref . Вы всегда можете сделать запросы самостоятельно.
Самый полезный комментарий
До сих пор нет комментариев от разработчиков Mongoose по этому вопросу? Это повторяющаяся проблема, которая продолжает возникать, когда у вас есть более одного драйвера, выполняющего запись и чтение из одной и той же базы данных.
Драйвер Node поддерживает DBRefs, и мне кажется странным, что Mongoose до сих пор не поддерживает его.