Для записи я немного новичок, когда речь заходит о Rails и MongoDB.MongoDB/Mongoid: Можно ли запросить ObjectID во встроенных документах?
Я использую Rails + Mongoid + MongoDB для создания приложения, и я заметил, что Mongoid по какой-то причине добавляет ObjectID во встроенные документы.
Есть ли способ запросить все документы в коллекции по ObjectID как основным документам, так и вложенным?
Если я запускаю эту команду
db.programs.findOne({ _id: ObjectId("4d1a035cfa87b171e9000002") })
я получаю эти результаты, это нормально, так как я запрашивая для ObjectID на корневом уровне.
{
"_id" : ObjectId("4d1a035cfa87b171e9000002"),
"created_at" : "Tue Dec 28 2010 00:00:00 GMT+0000 (GMT)",
"name" : "program",
"routines" : [
{
"name" : "Day 1",
"_id" : ObjectId("4d1a7689fa87b17f50000020")
},
{
"name" : "Day 2",
"_id" : ObjectId("4d1a7695fa87b17f50000022")
},
{
"name" : "Day 3",
"_id" : ObjectId("4d1a76acfa87b17f50000024")
},
{
"name" : "Day 4",
"_id" : ObjectId("4d1a76ecfa87b17f50000026")
},
{
"name" : "Day 5",
"_id" : ObjectId("4d1a7708fa87b17f50000028")
},
{
"name" : "Day 6",
"_id" : ObjectId("4d1a7713fa87b17f5000002a")
},
{
"name" : "Day 7",
"_id" : ObjectId("4d1a7721fa87b17f5000002c")
}
],
"user_id" : ObjectId("4d190cdbfa87b15c2900000a")
}
Теперь, если я пытаюсь запросить с ObjectID с одним из встроенных документов (процедур) я получаю нулевой, как это.
db.programs.findOne({ _id: ObjectId("4d1a7689fa87b17f50000020") })
null
Я знаю, что один может запрашивать встроенные объекты, как так
db.postings.find({ "author.name" : "joe" });
, но это кажется немного излишним, если вы прошли в ObjectID какой-то и хотите найти, в каком документе, который ObjectId проживает.
Так что я думаю, мой вопрос заключается в следующем ...
Можно ли, с каким-то способом, я не знаком с, запрос по ObjectID и поиск ObjectId находится в внедренных документах?
Спасибо.
Хорошо. Спасибо за информацию :) –