2013-03-03 3 views
0

Я пытаюсь создать новые объекты на MongoDB через PHP с персональными идентификаторами, например:новые Mongoid объектов с PHP

$user = Array(
     '_id' => "$id", 
     'name' => $name, 
    ); 

Проблема с этим состоит в том, что когда я запрашиваю для удостоверения личности, мне нужно использовать следующее:

$query = Array('_id' => "$id"); 

вместо более подходящего

$query = Array('_id' => new MongoId("$id")); 

заставляя меня изменить все querie s. Я подумал, что сделаю это, установив вставку, добавив «_id» => новый MongoId («$ id»), но, если я его использую, он просто создаст идентификатор mongodb по умолчанию , входящий в мою персонализированную.

Как это исправить?

Заранее спасибо

+0

как указано на этой странице здесь: http://www.php.net/manual/it/mongoid.construct.php это должно быть _24 шестнадцатеричных символов_. Что я могу сделать сейчас? –

ответ

0

Я немного запутался, что именно вы просите здесь, однако, я полагаю, что я мог бы просто понять.

Если вы используете _id разные по умолчанию ObjectId, который использует MongoDB для первичного ключа строки, то вы не должны использовать ObjectId или фактически MongoId, чтобы создать этот объект.

Вы должны использовать только MongoId при использовании по умолчанию _id, который предоставляется, если вы используете свой собственный ObjectId (MongoId) не будет работать, как вы ожидаете.

Итак, ответ здесь заключается в том, чтобы прекратить использование MongoId.

+0

Вы правильно поняли. Спасибо. –

+0

мой вопрос: может ли объект MongoId удалить проблему для функционирования БД? Спасибо. –

+0

@johnsmith Нет, MongoId - это просто сторонняя оболочка PHP для OjbectId, поэтому, если вы не используете ObjectIds в своем _id, нет проблем – Sammaye

Смежные вопросы