当前位置: 首页 > 知识库问答 >
问题:

使用C语言选择MongoDB查询字段#

朱修真
2023-03-14

如何将此MongoDB查询转换为C#等价查询?

db.lists.find({_id: 10}, {planet_sizes: {$elemMatch: {id: 1}}})

我尝试了以下方法,但没有成功,这意味着它不会返回与我在shell中得到的相同的结果:

  IMongoQuery searchQuery = Query.And(
             Query.EQ("_id", 10),
             Query.ElemMatch("planet_sizes",
             Query.EQ("id", 1)));

我想查询文档的主列表,提取_id10的文档,并从其数组中提取id等于1的数组项。我上面提供的MongoDB字符串查询在shell中工作,但是我不知道如何在C#中编写等效的查询。提前感谢。

共有2个答案

郭彬郁
2023-03-14

您可以始终使用linqhttp://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/还是只想使用MongoQuery?

裴鸿熙
2023-03-14

在C#driver中,字段选择是通过将调用链接到SetFields来处理的:

var docs = db.GetCollection("list")
    .Find(Query.EQ("_id", 10))
    .SetFields(Fields.ElemMatch("planet_sizes", Query.EQ("id", 1)))
    .ToList();
 类似资料:
  • 这是我在mongo的文档: 我需要更新内部房间阵列中的对象。我尝试了一个选择匹配元素的查询没有语法错误,但出现了一个错误: “errmsg”:“字段“calendar.0.rooms.0.price”必须是数组,但在文档{u id:ObjectId('5cd26a886458720f7a66a3b8')中为字符串类型”, 这是我的疑问: 这是我在StackOverflow中找到的一些参考,但没有帮

  • 我在这里找到了一个解决方案:如何使用ApacheCamel和MongoDB创建动态equals查询? 但这看起来需要做很多工作。难道Camel没有更简单的方法将值传递给MongoDB查询吗?我希望我们能传递Mongo使用的实际find({})语言。 以下是我的工作,一些日志显示了它在做什么:

  • 喜欢程序员这份工作的独立的程序员可以为任务选择最好的语言。大多数职业程序员控制不了他们将要使用的语言。通常,这个话题会由执行行政决议而非技术决议的boss说出,他们缺少勇气去提升新型工具,即使他们知道,大多数时候使用最新的知识,最少被接受的工具是最好的。另一些情况下,这种团体中真实的好处,以及拓展一个更大的社区的好处,排除了个人的选择。通常管理者由能够雇用在给定的语言有些经验的程序员驱动。毫无疑问

  • 问题内容: 我有一个oc_category_description表,其中的列是: category_id 姓名 和其他表oc_category,其中的列是: category_id 图像 parent_id 这是oc_category_description表的示例图片 oc_category表 在这里,我想显示名称,category_id,图像,parent_id,其中oc_category

  • Hyperledger Composer中的查询以定制的查询语言编写。查询在业务网络定义中的一个叫(queries.qry)的查询文件中定义。 查询语法 所有查询都必须包含description和statement属性。 描述 该description属性是描述查询功能的字符串。它必须包含但可以包含任何东西。 声明 该statement属性包含查询的定义规则,可以具有以下运算符: SELECT 是

  • 这是我在mongodb go驱动程序中的功能: 这个函数运行得很好,但我在结果中得到了字段。我知道mongodb查询可以从查询结果中排除字段,但我不知道如何将其与函数一起使用: 从tutorialspoint: db。删除DDEMO。查找({},{u id:0}); 来自没有字段名的mongodb查询结果 db.collection.find ({},{_id: 0,t_number: 1}).