小编use*_*596的帖子

MongoDB替换特定的数组值

在MongoDB中,我有一个包含多种语言的电影集合,例如
languages: [0:USA, 1: German, 2: French, ...etc]

数组值不是任何特定顺序.

我现在如何根据某些特定值更新数组值?假设我要更新所有"法语"并将其替换为"Francais"以用于整个集合.我怎样才能做到这一点?

arrays mongodb

11
推荐指数
2
解决办法
5134
查看次数

查询数组中的匹配日期

我创建了一个带有一些嵌套字段的模型架构,其中之一是时间戳字段:

{_id: Object_id,
  name: string,
someArray: [{Timestamp: Date, otherFields: ...},{Timestamp: Date, otherFields...},...],
...,
}
Run Code Online (Sandbox Code Playgroud)

时间戳记具有以下类型:Timestamp: Date 例如(Timestamp: 2018-06-01T14:57:45.757647Z

现在,我只想查询数组中位于开始日期和结束日期之间的那些文档,这些文档是从API url作为参数接收的...

/link/Collection/:start.:end.:id
Run Code Online (Sandbox Code Playgroud)

我的路由器网址(带有参数字符串作为查询)如下所示:

http://localhost:6000/link/Collection/2018-06-01T14:50:45.2018-06-01T15:17:45.29
Run Code Online (Sandbox Code Playgroud)

我在猫鼬/节点(表达式)中查询数据的查询函数如下所示:

exports.list_by_start_end_date_ID = function(req, res) {
    console.log(req.body)
    d_id=req.params.id;
    start = req.params.start;
    end = req.params.end;
    console.log(d_id);
    console.log(start)
    console.log(end)
    console.log(new Date(start));
    console.log(new Date(end));
    //SomeColl.findById(d_id, "myCollection").where("myCollection.Timestamp").gte(new Date(start)).lte(new Date(end))
    SomeColl.findById(d_id, "myCollection",{"myCollection.Timestamp": {"$gte": new Date(start), "$lte": new Date(end)}})
    .exec( function(err, fps) {
        if (err)
            res.send(err);
        res.json(fps);
    });
};
Run Code Online (Sandbox Code Playgroud)

我回来了:

[{"Timestamp":"2018-06-01T14:57:45.757647Z"...},{"Timestamp":"2018-06-01T15:27:45.757647Z"...},{"Timestamp":"2018-06-01T15:12:45.757647Z"...}]
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,我也可以从开始和结束参数创建新的Date(start),它是正确的,但是正如您所看到的,不应返回15:27时间的文档...

我尝试了两个版本的查询字符串(也注释掉了版本),还尝试了将空白的ISO日期格式字符串作为参数(开始/结束)传递给url ..,但均无效。如何比较猫鼬的日期并获得正确的文件回传?

编辑:我试图通过忽略db api操作来找到一种解决方法,而只是使用javascript ..解析数组的正确文档(子文档):

myColl.findById(d_id)
    .exec( function(err, …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

4
推荐指数
1
解决办法
1270
查看次数

角HttpClient结合管道,点击与订阅?

我正在尝试使用Angular中的HttpClient检索一些数据。我的代码如下所示:

getData(suffurl: string, id?:number): Observable<any[]> {
    return this.http.get<any[]>('localhost:5555/DNZ/'+ this.suff_url)
    .pipe(
      tap(data => console.log("Anlagenstatus Daten:", data)),
      catchError(this.handleError('getData',[])),
      subscribe(Response => { console.log(Response)})
    )
  }
Run Code Online (Sandbox Code Playgroud)

但是,我不能在管道方法中使用订阅,也不能在.pipe方法之前或之后将其链接。问题是,没有链接,尽管链接和数据存在,但似乎此代码未从url返回任何数据或未向控制台记录任何内容?

publish-subscribe angular angular-httpclient

2
推荐指数
1
解决办法
6556
查看次数