gpt4 book ai didi

node.js - 如果字段是 Date 类型,我如何在 mongodb 中知道?

转载 作者:IT老高 更新时间:2023-10-28 13:34:08 26 4
gpt4 key购买 nike

我正在开发一个 NodeJS+Mongodb 应用程序。

我刚刚使用控制台客户端在 mongodb 中插入了一条记录:

db.user.save({myId:11111, myDate: ISODate("2012-04-30T00:00:00.000Z")})

问题是,当我在 node.js 中时,我需要知道“myDate”字段是否真的是 Date 类型,以便执行数据范围查询等。

我尝试了以下方法。

1.在 mongo 客户端控制台上:

typeof db.user.myDate --> It returns "Object"
db.user.myDate instanceof Date --> It returns "false"

<强>2。在我的 Nodejs 代码上,

我正在尝试获取调用此 getTypeMembers 函数的类型。 (来自 db 查询的 obj)

exports.getTypeMembers = function(obj) {
obj = JSON.parse(JSON.stringify(obj)

for(var _k in obj){
if(Object.prototype.toString.call(obj[_k]) === '[object Array]' ) {
obj[_k] = "Array";
}
else if(typeof(obj[_k])=="object"){
obj[_k] = this.getTypeMembers(obj[_k]);
}else{
obj[_k] = typeof (obj[_k]);
}
}
return obj;

};

我在这个方法中得到的是:"String",当我需要"Date"

有没有其他方法可以获得某种 "Date" 结果?

最佳答案

您可以使用 $type 运算符来查询特定类型的字段:

db.col.query({a: {$type: 9}})

9 是日期类型的数字,参见 http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24type

至于确定node.js中的类型,这取决于你的驱动程序。我没有使用过,但它可能是一个特定的原型(prototype),就像 ObjectId 一样。也许您可以检查对象并查找构造函数名称。

关于node.js - 如果字段是 Date 类型,我如何在 mongodb 中知道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com