Mongoose: Проблема с DBRefs - неправильная реализация?

Созданный на 28 янв. 2014  ·  3Комментарии  ·  Источник: Automattic/mongoose

Привет,

У меня проблемы с пониманием чего-то или он глючит.

Давайте начнем. Вот документация по 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, как это описано в документации.

new feature

Самый полезный комментарий

До сих пор нет комментариев от разработчиков Mongoose по этому вопросу? Это повторяющаяся проблема, которая продолжает возникать, когда у вас есть более одного драйвера, выполняющего запись и чтение из одной и той же базы данных.

Драйвер Node поддерживает DBRefs, и мне кажется странным, что Mongoose до сих пор не поддерживает его.

Все 3 Комментарий

+1
Столкнувшись с той же проблемой с приложением php, использующим доктрину mongodb odm. В настоящее время я не могу использовать свою уже существующую базу данных с мангустом, потому что объекты mongodb DBRefs не используются для хранения ссылок.
Может быть, следует добавить другой тип схемы (Schema.DBRef?)?
Это загрузит документ с заданной информацией.

До сих пор нет комментариев от разработчиков Mongoose по этому вопросу? Это повторяющаяся проблема, которая продолжает возникать, когда у вас есть более одного драйвера, выполняющего запись и чтение из одной и той же базы данных.

Драйвер Node поддерживает DBRefs, и мне кажется странным, что Mongoose до сих пор не поддерживает его.

Поддержка DBRefs для заполнения на самом деле не является высоким приоритетом, поскольку документы MongoDB рекомендуют не использовать dbref . Вы всегда можете сделать запросы самостоятельно.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги