2013-06-26 10 views
1

Я начинаю на MongoDB, и я в настоящее время соединяю его с php, чтобы попытаться выполнить следующую работу:
Я хочу создать базу данных для хранения информации, которая может быть обновлен в любое время, но ему нужно сохранить дату «document added on:».
В сумме:
MongoDB: Если документ существует VS Если документ не существует

Если документ существует:
-Обновление все в документе, за исключением «документ добавлен» запись даты.
ELSE
-Создание документа с данными + документ, добавленный в: XXXXX ".

В случае базы данных с этим форматом:

Database{ document{ User_ID: "12345", Name: "Joe", More_Info: "" Date_Added_To_DB: "1372291496", Last_Updated:"1372291556"}}


Я исследовал и спросил вокруг и лучшее, что я получил до сих пор это функция, которая будет обновлять весь документ, если он существует, и создать новый документ, если это не так.

db.Database.update ({ 'User_ID': $ USERID}, {$ набор: { 'FIELDNAME': новый "данные"}}, {upsert: истинный})

ответ

1

Вопрос заключается в том, как вы определяете, что существует «документ»? Обычно вы делаете это с помощью уникального идентификатора. Теперь MongoDB's ObjectId приходит на помощь, потому что он уже содержит метку времени. Это также может быть be used in queries.

Вместо использования целочисленного поля User_ID, возможно, вы захотите созвать поле _id и использовать тип данных ObjectId, чтобы получить эту функциональность бесплатно.

> db.test.insert({"foo" : "test"}); 
{ "_id" : ObjectId("51cb763e58bb4077aea65b3d"), "foo" : "test" } 
> var foo = db.test.findOne(); 
> foo._id.getTimestamp(); 
ISODate("2013-06-26T23:16:14Z")