nodejs与mongodb的终级难题
发布于 11 年前 作者 iln168 5626 次浏览 最后一次编辑是 8 年前

那位大师知道用 find 操作mongodb库的时候,如何对字段重命名, 如:

    > db.Foods.findOne();
{
        "name" : "锛圙IF 鍥惧儚锛?6x11 鍍忕礌锛?gif",
        "imgUrl" : "2012_11_17锛圙IF 鍥惧儚锛?6x11 鍍忕礌锛?gif",
        "money" : "10",
        "source" : "C",
        "address" : "涓浗娴嬭瘯",
        "time" : 1355748279000,
        "_id" : ObjectId("50cf13b7abbfa2041d000001")
}

不知道为没有方法 把_id修改为id输出(或是 把time修改为mytime),我希望得到的结果如下:

{
            "name" : "锛圙IF 鍥惧儚锛?6x11 鍍忕礌锛?gif",
            "imgUrl" : "2012_11_17锛圙IF 鍥惧儚锛?6x11 鍍忕礌锛?gif",
            "money" : "10",
            "source" : "C",
            "address" : "涓浗娴嬭瘯",
            "mytime" : 1355748279000,
            **"id" : ObjectId("50cf13b7abbfa2041d000001")**
    }

感觉有点像操作数据的sql语句

select mytime  time form Foods
17 回复

类似sql的

select id as systemId from table1

各位大师帮帮忙啊

$rename 直接改字段名字。

$rename如何操作啊,我知道有这个不过好像是把mongodb库中的实际字段也修改了啊。 如何你的方法不会,那能不能提供一下代码谢谢了

@iln168  可不可以变通下,查询出来的数据放到另外一个collection,然后把这个collection的字段名改掉,呵呵。

初学mongodb,瞎出主意,勿怪,呵呵

你的方法蛮好的,但我想知道mongodb是否提供解决这样问题的方法

不过还是很谢谢你

这个需求还挺基本的,MongoDB应该有支持。

是啊,这个是很基本的东西,但一直找不到方法

就像我发的:http://cnodejs.org/topic/50d159b2637ffa4155becc28 我感觉也很基本,我也没找到方法,郁闷。

兄弟你那个是想实现什么功能

靠,api上都有,都没人研究api?

?? 兄弟你就直接放代码吧。

明确的告诉你:没有 如果想实现mysql的as功能,那么自己程序里模拟下吧,我就这么做的,把数据循环下然后修改key

@iln168 我想要运算字段值,比如将某个字段放在条件中。

db.Foods.findOne(function(err,rs){
    var data = {};
    if(rs){
        data = rs.toJSON();
        data.id = data._id;
        data.mytime = data.time
        try{
             delete data._id;
             delete data.time;
        }catch(e){

        }
    }
    res.send(data);

});
回到顶部