C MongoDB驱动程序 - 如何添加日期?

时间:2015-10-07 19:21:32

标签: c mongodb

我觉得MongoDB的C驱动程序缺少一些超出一些基本内容的示例。我在谈论这份文件http://api.mongodb.org/c/1.2.0/index.html。有没有人有一个将Date对象插入数据库或者对完整文档进行批量更新而不是像文档中的示例那样的特定字段的示例?不敢相信那里什么都没有,还有人还在使用C吗? :)

修改

好的接缝人们认为我想开始讨论我不是那么我的问题是:

如何使用C驱动程序在mongodb中添加Date对象?

2 个答案:

答案 0 :(得分:2)

你的问题很缺乏。此处的行为准则要求您发布您尝试的代码。从来没有,这是如何开始。

首先,您需要知道如何使用C驱动程序。以下是mongodb-c-api documentation

中的示例
#include <bson.h>
#include <mongoc.h>
#include <stdio.h>

int
main (int   argc,
      char *argv[])
{
    mongoc_client_t *client;
    mongoc_collection_t *collection;
    mongoc_cursor_t *cursor;
    bson_error_t error;
    bson_oid_t oid;
    bson_t *doc;

    mongoc_init ();

    client = mongoc_client_new ("mongodb://localhost:27017/");
    collection = mongoc_client_get_collection (client, "test", "test");

    doc = bson_new ();
    bson_oid_init (&oid, NULL);
    BSON_APPEND_OID (doc, "_id", &oid);
    BSON_APPEND_UTF8 (doc, "hello", "world");

    if (!mongoc_collection_insert (collection, MONGOC_INSERT_NONE, doc, NULL, &error)) {
        printf ("%s\n", error.message);
    }

    bson_destroy (doc);
    mongoc_collection_destroy (collection);
    mongoc_client_destroy (client);

    return 0;
}

请参阅文档如何编译它。 现在,您必须了解,您始终插入BSON文档,并且要插入的数据类型是datetime,因此您可能希望使用bson_append_date_time()插入文档。有关更多信息,您必须查看documentation of libbson。 我希望这足以让你开始。

答案 1 :(得分:1)

您可以使用bson_append_now_utc将当前时间添加到文档中。

    bson_append_now_utc(doc, "expire_time", -1);

工作片段:

doc = bson_new ();
bson_oid_init (&oid, NULL);
BSON_APPEND_OID (doc, "_id", &oid);

bson_append_now_utc(doc, "expire_time", -1);

if (!mongoc_collection_insert (collection, MONGOC_INSERT_NONE, doc, NULL, &error)) 
    {
    fprintf (stderr, "%s\n", error.message);
    }

bson_destroy (doc);