小编Ash*_*shh的帖子

在JavaScript中将ObjectID(Mongodb)转换为String

我想在JavaScript中将ObjectID(Mongodb)转换为String.当我从一个对象形式MongoDB.它就像一个对象有:timestamp,second,inc,machine.我无法转换为字符串.

javascript mongodb aggregation-framework

48
推荐指数
10
解决办法
6万
查看次数

在MongoDB中搜索多个集合

我知道MongoDB的理论以及不支持连接的事实,并且我应该尽可能地使用嵌入文档或非规范化,但是这里是:

我有多个文件,例如:

  • 用户,嵌入Suburbs,但也有:名字,姓氏
  • 郊区,嵌入国家
  • 嵌入学校的孩子属于用户,但也有:名字,姓氏

例:

Users:
{ _id: 1, first_name: 'Bill', last_name: 'Gates', suburb: 1 }
{ _id: 2, first_name: 'Steve', last_name: 'Jobs', suburb: 3 }

Suburb:
{ _id: 1, name: 'Suburb A', state: 1 }
{ _id: 2, name: 'Suburb B', state: 1 }
{ _id: 3, name: 'Suburb C', state: 3 }

State:
{ _id: 1, name: 'LA' }
{ _id: 3, name: 'NY' }

Child:
{ _id: 1, _user_id: 1, first_name: 'Little Billy', last_name: 'Gates' } …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

38
推荐指数
4
解决办法
5万
查看次数

使用限制时,使用MongoDB获取总文档数

我有兴趣优化我正在使用MongoDB的"分页"解决方案.我的问题很直接.我通常会限制使用该limit()功能返回的文档数量.这迫使我发出一个没有该limit()函数的冗余查询,以便我也可以捕获查询中的文档总数,这样我就可以将其传递给客户端,让他们知道他们必须发出额外的请求.检索其余文件.

有没有办法将其压缩为1个查询?获取文档总数但同时仅使用limit()?检索子集?是否有不同的方式来思考这个问题,而不是接近它?

pagination mongodb casbah mongodb-query aggregation-framework

33
推荐指数
8
解决办法
2万
查看次数

在mongodb中将字符串转换为日期

有没有办法使用mongodb shell使用自定义格式将字符串转换为日期

我想转换"21/May/2012:16:35:33 -0400"到目前为止,

有没有办法通过DateFormatter或某事 Date.parse(...)ISODate(....)方法?

mongodb mongodb-query aggregation-framework

28
推荐指数
3
解决办法
8万
查看次数

如何$项目将ObjectId投影到mongodb聚合中的字符串值?

是否有一个我可以在聚合函数中使用的运算符来获取字符串而不是ObjectId作为响应?

db.something.aggregate([ {$match: {'property': {$exists:true}} }, {$project: {stringId: '$_id.???'}}])
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

25
推荐指数
2
解决办法
2万
查看次数

如何使用reactjs中的this.refs从输入类型中获取值?

无法使用this.refs获取输入类型的值...如何从输入类型获取值

   export class BusinessDetailsForm extends Component {
      submitForm(data) {
        console.log(this.refs.googleInput.value)
        }
      }
      reder() {
        return(
          <form onSubmit={this.submitForm}>
            <Field type="text"
              name="location"
              component={GoogleAutoComplete}
              id="addressSearchBoxField"
              ref="googleInput"
            />
          </form>
        )
      }
    }
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

25
推荐指数
5
解决办法
5万
查看次数

在mongo聚合中将ObjectID转换为String

我现在正处于这种情况:我有一个集合X:

{
  _id:ObjectId('56edbb4d5f084a51131dd4c6'),
  userRef:ObjectId('56edbb4d5f084a51131dd4c6'),
  serialNumber:'A123123',
  ...
}
Run Code Online (Sandbox Code Playgroud)

我需要聚合所有文档,用userRef + serialNumber对它们进行分组,所以我试图像这样使用concat:

$group: {
        _id: {
            '$concat': ['$userRef','-','$serialNumber']
        },
       ...
Run Code Online (Sandbox Code Playgroud)

所以基本上在我在MongoDB中的聚合中,我需要通过ObjectId和字符串的串联来分组文档.但是,似乎$ concat只接受字符串作为参数:

uncaught exception: aggregate failed: {

    "errmsg" : "exception: $concat only supports strings, not OID",
    "code" : 16702,
    "ok" : 0
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将ObjectId转换为聚合表达式中的String?

编辑:

这个问题是相关的,但我的解决方案不适合我的问题.(特别是因为我在聚合期间不能使用ObjectId.toString())

实际上我在Mongo的文档中找不到任何ObjectId().toString()操作,但我想知道在这种情况下是否有任何棘手的事情可以做.

mongoose mongodb mongodb-query aggregation-framework robo3t

16
推荐指数
2
解决办法
5329
查看次数

MongoDB列表 - 获取每个第N项

我有一个看起来大致如下的Mongodb架构:

[
  {
    "name" : "name1",
    "instances" : [ 
      {
        "value" : 1,
        "date" : ISODate("2015-03-04T00:00:00.000Z")            
      }, 
      {
        "value" : 2,
        "date" : ISODate("2015-04-01T00:00:00.000Z")
      }, 
      {
        "value" : 2.5,
        "date" : ISODate("2015-03-05T00:00:00.000Z")
      },
      ...
    ]
  },
  {
    "name" : "name2",
    "instances" : [ 
      ...
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

其中每个元素的实例数量可能非常大.

我有时想只得到一个数据样本,也就是说,获取每个第三个实例,或每第10个实例......你得到了图片.

我可以通过获取所有实例并在我的服务器代码中过滤它们来实现这一目标,但我想知道是否有办法通过使用一些聚合查询来实现.

有任何想法吗?


更新

假设数据结构是扁平的,如下面的@SylvainLeroux所示,那就是:

[
  {"name": "name1", "value": 1, "date": ISODate("2015-03-04T00:00:00.000Z")},
  {"name": "name2", "value": 5, "date": ISODate("2015-04-04T00:00:00.000Z")},
  {"name": "name1", "value": 2, "date": ISODate("2015-04-01T00:00:00.000Z")},
  {"name": "name1", "value": 2.5, "date": ISODate("2015-03-05T00:00:00.000Z")},
  ...
] …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

15
推荐指数
3
解决办法
3338
查看次数

如何匹配包含空格和不包含空格的两个字符串

例如:在DB中,我的字符串值就像"cell phones".如果我"cellphones"从前端得到字符串值.如何将其与DB字符串进行比较并获取相关的字符串值作为响应.

mongodb node.js mongodb-query aggregation-framework

15
推荐指数
4
解决办法
385
查看次数

有没有办法以unix格式向ISODate显示时间戳?

我们在MongoDB中使用unix时间戳存储了一个日期,如何在查询时获取日期?有没有办法以ISODate格式显示时间戳?

mongodb mongodb-query aggregation-framework

13
推荐指数
3
解决办法
2万
查看次数