问题标签 [mongo-c-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 C 驱动程序获取两个日期之间的数据 mongoDb
我插入了这样的数据
{“userid”:“manaf”,“DataValue”:{“$type”:“00”,“$binary”:“sampleBinaryData”},“timestamp”:1460718961132,“_id”:{“$oid”:“ 5710cd7194e5f57831eea91e”},“__v”:0}
我需要获取提供的数据 b/w 时间戳值。
我已经通过在 mongoDb 客户端控制台中使用以下命令来完成此操作。
db.sampleCollection.find({"timestamp": {"$gte":1460703944149, "$lt":1460703944683 },"userid": "manaf"})
但我不能在我的 c 程序中这样使用。
这是我的客户程序
我有这样的错误
这个程序的实际问题是什么?
c - Mongo:将 JSON 转换为 BSON 时出错
我正在尝试使用 Mongo C 驱动程序将以下 MongoDB JSON 命令转换为有效的 BSON:
我尝试使用以下方法创建它:
但这是大错特错的。
当我编译时,我得到:
/current/set_fav.c:在函数'main'中:
/current/set_fav.c:102:警告:初始化丢弃来自指针目标类型
的限定符/current/set_fav.c:168:122:错误:宏“BSON_APPEND_UTF8”已通过 9参数,但只需要 3 个
/current/set_fav.c:168: error: 'BSON_APPEND_UTF8' undeclared (first use in this function)
/current/set_fav.c:168: error: (每个未声明的标识符只报告一次 /current/ set_fav.c:168:错误:对于它出现的每个函数。)
仅供参考:在代码中设置更高folderPositionRaw
的值。3_root
添加更多信息:最初我有错误的 Mongo 语法,但 C 很高兴。我正在使用以下内容:
我从我的数据库团队那里得到了帮助,给了我正确的 Mongo 语法(帖子顶部),在我尝试将其构建到 C BSON 中时,我做错了。
一些进展:
我已经更新了我的代码,它们不再崩溃,这是一个好兆头,但是发送到 Mongo 的输出 JSON 结构不完全正确。我认为问题是在 mongo $inc 命令中发送的值 1 作为标量 1 而不是 int 1 发送。我尝试过在 1 周围加引号和不加引号。带引号的代码运行,但没有执行更新(不返回错误)。如果我删除引号应用程序崩溃。
c# - 动态 Linq 谓词使用 C# MongoDB 驱动程序引发“不支持的筛选器”错误
我一直在尝试使用 Linq 将表达式的动态列表传递给 MongoDB C# Driver 查询...例如,此方法适用于针对 ORM 的常规 Linq 查询,但在应用于 MongoDB 查询时会导致错误...(仅供参考:我也在使用 LinqKit 的 PredicateBuilder)
GetSessionMsgs() 方法在数据服务类中定义...
使用 LinqKit PredicateBuilder,我只需将提供的表达式添加到单个“AND”表达式中……然后在 Where() 子句中将其应用于任何 Linq 查询。此外,使用 Select() 子句,我将结果投影到预定义的数据传输对象 (DTO) 中,并且仅返回 DISTINCT DTO。
当我反对我的 Telerik ORM 上下文实体集合时,这种技术通常有效......但是当我对 Mongo 文档集合运行它时,我得到以下错误......
不支持的过滤器:Invoke(e => (e.Region.ToLower() == "central"), {document})
在我不清楚的情况下,肯定有一些事情在幕后发生。在 C# Driver for MongoDB 文档中,我发现了以下注意...
“当投影标量时,驱动程序会将标量包装到具有生成字段名称的文档中,因为 MongoDB 要求来自聚合管道的输出是文档”
但老实说,我不确定这必然意味着什么,或者它是否与这个问题有关。错误中“{document}”的出现表明它可能是相关的。
不过,任何额外的想法或见解将不胜感激。现在已经坚持了2天的大部分时间......
我确实找到了这篇文章,但到目前为止还不确定接受的解决方案与我所做的有什么不同。
mongodb - MongoDB:使用“c-driver”查找 $gte 为 1 的文档
我正在尝试做一些应该很简单的事情,但显然我做错了。任何帮助,将不胜感激。
我知道_id
文件的内容,我只想验证它available_uses
是$gte 1
简单文档样本:
我尝试了以下 BCON,但它不起作用。我能够编译而没有任何错误,但是当我运行它时,应用程序会在query
设置行后立即死亡,因此显然该结构存在问题。没有错误,只是应用程序退出。
mongodb - 由 Mongo-C 创建时,本机节点 mongodb 驱动程序返回正确的文档,但 Number 数组为空
请参阅底部的编辑。这似乎是 Mongo-C 和/或本机 node-mongodb 问题,而不是 Mongoose 问题。
我有存储在 MongoDB 中的实时地震数据集合。一个称为 data 的键是一个 int 样本数组。当我通过 Mongoose 查询这个集合时,一切看起来都很好,但是数据键作为一个空数组返回,什么时候应该作为长度为 nsamp(样本数)的数字数组返回。
我已将 Mongoose Schema 定义为:
通过mongo查询以下记录
它返回
但是,如果我在 Mongoose 中执行相同的查询,则数据数组为空:
我得到以下控制台输出:
我是否正确定义了架构?
编辑1:将脚本更改为:
产量:
编辑 2:在尝试上述方法后,这可能是本机 mongodb 驱动程序。我将脚本更改为:
并得到与编辑 1 相同的结果。
编辑 3:MongoDb 集合是通过使用 Mongo-CI 创建三个类似文档的 C 程序填充的:1)通过 mongo-c 例程(原始),2)node-mongodb 和 3)Mongo 控制台。当我进行查找时,它们在 mongo 控制台中看起来很相似(除了 id 和键名),所以我觉得不需要添加输出,除非有人真的想要它。我将节点脚本更改为以下内容:
产生:
我使用 mongo gem 创建了一个 ruby 脚本,并且能够读取所有三个数组。
c# - Mongo C# 驱动程序 - GeoJson 多边形到 GeoJsonLinearRingCoordinates
我是 Mongo C# 驱动程序的新手,我正在尝试在 C# 中创建一个相交查询。我的函数在 Javascript 中工作,但我在 Mongo 驱动程序中的一些类上苦苦挣扎。
目前我的 GeoJson 拉得很好,但是当我去创建要传递给相交查询的对象时,我似乎没有正确的参数。目前我正在使用以下帖子对我的过滤器进行建模: 从 MongoDB 加载完全包含已知多边形的多边形
如何将 geojson 字符串转换为“坐标”列表以创建 GeoJsonLinearRingCoordinates 对象?
这是我正在尝试使用的多边形示例(俄亥俄州卡罗尔县):
这是我在 Mongo shell 中使用的 JavaScript 查询:
mongodb - MongoDB C驱动程序如何在对象数组中查找对象字段值
我尝试在 C 驱动程序中找到类似于以下内容的方法: https ://docs.mongodb.com/manual/reference/operator/query/elemMatch/#op._S_elemMatch
正如在这个线程中回答的那样:
Query for a field in an object in an array with Mongo?
我有这个 json,我想检查 session.id 的值是否 == 1234556:
如何在新的 C 驱动程序中完成?
mongodb - MongoDB CDriver 如何更新索引 N 中的数组对象?
我有看起来像这样的文件:
我喜欢获取其 id == 133333 (位于 [1] 中)的会话元素,并能够使用新值对其进行更新并向其添加新元素,因此它看起来像这样:
当涉及到 C 驱动程序时,文档很难理解,有人可以展示一下最好的方法吗?
更新
我尝试使用 cdriver 版本 1.4(最新)并且奇怪的事情发生了更新失败(返回 true)但文档中没有更新
所以当你看到发生了很多奇怪的事情时,我如何检查更新是否真的成功?
mongo-c-driver - 使用 MongoDb c 驱动程序从 bson 中提取数组
我在 mongo 集合中有文档,如下所示: { "f" : [ 283, 180, 284 ], "l":["1","29"] } 我正在使用 mongoDB c 驱动程序来获取这些文档和对这些执行一些操作> 我想将元素“f”恢复为整数数组,将元素“l”恢复为两个多维 char 数组。
我无法弄清楚如何将“f”提取到 int* 并将“l”提取到 char**。我尝试将指针(数据)类型转换为不同的类型,但值不正确。我该怎么做?
mongodb - mongo-c-driver 找不到 libbson
我正在尝试构建 mongo-cxx-driver(最终),第一步是构建 mongo-c-driver(需要 libbson)。
我正在运行 Windows 10 并使用 Visual Studio 2015 作为我的编译器。我能够很好地运行 CMake 并构建 libbson,所有构建的项目都很好。现在我有bson-static-1.0.lib
内置mongo-c-driver/src/libbson/build/Debug/
和mongo-c-driver/src/libbson/build/Release/
. 这似乎一切都是正确的。
下一步是构建 mongo-c-driver。我运行 CMake 并尝试创建 Visual Studio 解决方案,但出现错误:
看起来变量BSON
没有设置为正确的值——它的值是BSON-NOTFOUND
现在。有谁知道正确的值是什么BSON
,以及它是否应该在编译过程中自动设置libbson
?