草庐IT

mongodb-csharp

全部标签

mongodb - 使用 MongoDB 聚合将来自不同属性的值合并到一个数组中

我正在尝试找出是否会产生聚合运算符的组合,给定与此类似的输入文档:[{field1:1,field2:2},{field1:2,field2:3}]在具有单个数组字段的输出文档中,其元素是字段的不同值field1和field2输入文档的数量,在此示例中:{result:[1,2,3]}到目前为止我试过这些:$addToSet,但它似乎不支持多个参数,即不允许$addToSet来自同一文档中的多个属性$project到项目field1和field2进入结果数组字段,然后我可以$unwind然后$addToSet,但似乎也不支持将两个(或更多)属性投影到数组中。

java - MongoDB 驱动程序和集群

我正在从单个mongodb实例迁移到具有3个副本集、3个配置服务器和1个mongos实例的分片集群。每个副本集依次具有三个mongod实例。我在向集合中添加文档时正在寻找高可用性。我应该从我的Java程序连接到什么?我应该从任何副本集连接到mongos还是mongod?你能告诉我吗?谢谢。 最佳答案 在分片环境中,您的应用程序应始终连接到mongos实例。从您的应用程序的角度来看,mongos实例的行为与任何其他MongoDB实例一样。即使您有一个非分片数据库或驻留在单个分片上的集合,也建议您对所有操作使用mongos(即使这些操作

mongodb - MongoDB 中的 GroupBy DayOfMonth 但项目完成日期

我有一个包含日期字段的集合。我想按dayOfMonth对其进行分组,但在投影时我想投影完整的日期和相关计数。我在mongodb中有一个包含时间戳(日期字段)的原始集合这是我的聚合查询:db.raw.aggregate({"$match":{"Timestamp":{$gte:newDate("2012-05-30T00:00:00.000Z"),$lt:newDate("2014-05-31T00:00:00.000Z")}}},{$group:{_id:{ApplicationId:"$ApplicationId",date:{$dayOfMonth:'$Timestamp'}},c

MongoDB/Mongoose 按日期排序和按用户分组

我有一个集合,其中多个文档可能具有相同的userId字段。我想按userId进行分组,以便获得唯一的userId列表,但也可以按date排序,以便每个返回的文档都是该userId的最新文档。我已经用sql完成了这样的查询,我真的希望它能用mongo实现。在此示例集合中:{userId:456,date:5/16/1988},{userId:456,date:5/17/1988},{userId:789,date:5/18/1988},{userId:789,date:5/17/1988}我想返回:{userId:456,date:5/17/1988},{userId:789,date:

node.js - 有没有办法在 mongodb(mongoose) 的单个查询中创建 "stored procedure"调用多查询

有没有办法在mongodb中创建“存储过程”?例如一个访问mongodb一次但实际上调用多个集合的查询?(使用mongoose调用mongodb)我知道mongodb有serversidejavascript.但不同的是,我不认为服务器端函数能够调用集合。例如,如果我有以下示例。1。示例一(关系集合)mycollection1.findOne({_id:id},function(err,result1){mycollection2.findOne({_id:result1.id},function(err,result2){mycollection3.findOne({_id:resu

node.js - 新安装的 MEAN.io 无法识别 MongoDB

我在安装MEAN.io后尝试grunt时遇到此错误:Error:failedtoconnectto[localhost:27017]**CouldnotconnecttoMongoDB.PleaseensuremongodisrunningandrestartMEANapp.**安装MEAN.io后是否需要执行额外步骤才能使MongoDB正常工作? 最佳答案 您可以按如下方式安装mongodb:$sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv7F0CEB10$echo'debh

mongodb - 如何更新文档并避免在 MongoDB 中重复?

我在MongoDB中有一个查询问题,主要思想是我有一个这样表示的用户集合:{"_id":ObjectId("53e4ac672a486e660a6fe930"),"username":"foo","firstname":"bar","lastname":"foobar"}我想在一个名为feeds的集合中插入这样表示的feed:{"username":"john","readed":0}预期的结果应该是这样的:{"_id":ObjectId("53e4ac672a486e660a6fe930"),"username":"foo","firstname":"bar","lastname":

mongodb - 用于 CDI 的 wildfly 8 中的自定义 jndi 对象工厂

我正在尝试使用CDI为wildfly8注入(inject)jndi资源。为此,我想使用在https://github.com/juanlmelo/mongo-jndi-plugin/中开发的自定义jnidfactory。问题是由于我对wildfly的了解有限,我不知道以下内容。1)如何在wildfly中激活/附加这个jndifactory,当然我可以在启动时创建一个对象并以编程方式为其分配一个jndi名称,但想探索wildfly的自定义工厂功能2)设置对象工厂所需的uri属性的最佳实践,我假设在工厂内部使用System.getProperty就足够了,因为每个安装的DBuri都是不同的

java - MongoDB java驱动连接管理

我最近开始在Java中学习MongoDB,我发现我不必担心每次查询都关闭连接,就像我们为Mysql所做的那样和其他sql数据库。我想知道,MongoDBjava驱动程序如何管理每个请求的连接?他们在Java驱动程序中处理了吗? 最佳答案 我真的不明白“设计Java驱动程序”是什么意思。Mongo带有自己的java驱动程序。我假设,您的意思不是创建替代驱动程序,而只是想将现有驱动程序与MongoDB一起使用。在这种情况下,您实际上不需要在应用程序中管理连接。MongoJava驱动程序在内部维护一个连接池,因此当您进行插入操作时,它会从

node.js - Mongodb/ Mongoose 查询

一个User有一堆Essays,存储为一个ObjectIds数组。在CoffeeScript中,模式是:User=newSchemaessays:[Schema.Types.ObjectId]name:StringEssay=newSchemagrade:Numbertext:Stringauthor:Schema.Types.ObjectId如何在一个查询中获取所有不同用户,他们的最新论文是在最后一天写的,并且他们的最新论文的成绩在80到90之间?我有这个(在CoffeeScript中):req.mongoose.Essay.find(_id:$gt:#trickwhichcreat