Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 比较MongoDB中的两个日期字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的收藏中,每个文档都有2个日期,修改和同步.我想找到那些经过修改的>同步或同步不存在.

我试过了

{'modified': { $gt : 'sync' }}

但它没有表现出我的预期.有任何想法吗?

谢谢

解决方法

您无法将字段与另一个字段的值与普通查询匹配进行比较.但是,您可以使用聚合框架执行此操作:

db.so.aggregate( [
    { $match: …your normal other query… },{ $match: { $eq: [ '$modified','$sync' ] } }
] );

我把…你正常的其他查询……放在那里,因为你可以使用该索引.因此,如果您只想对名称字段为charles的文档执行此操作,则可以执行以下操作:

db.so.ensureIndex( { name: 1 } );
db.so.aggregate( [
    { $match: { name: 'charles' } },{ $project: { 
        modified: 1,sync: 1,name: 1,eq: { $cond: [ { $gt: [ '$modified','$sync' ] },1,0 ] } 
    } },{ $match: { eq: 1 } }
] );

随着输入:

{ "_id" : ObjectId("520276459bf0f0f3a6e4589c"),"modified" : 73845345,"sync" : 73234 }
{ "_id" : ObjectId("5202764f9bf0f0f3a6e4589d"),"modified" : 4,"sync" : 4 }
{ "_id" : ObjectId("5202765b9bf0f0f3a6e4589e"),"sync" : 4,"name" : "charles" }
{ "_id" : ObjectId("5202765e9bf0f0f3a6e4589f"),"sync" : 45,"name" : "charles" }
{ "_id" : ObjectId("520276949bf0f0f3a6e458a1"),"modified" : 46,"name" : "charles" }

返回:

{
    "result" : [
        {
            "_id" : ObjectId("520276949bf0f0f3a6e458a1"),"name" : "charles","eq" : 1
        }
    ],"ok" : 1
}

如果您想要更多字段,则需要在$project中添加它们.

大佬总结

以上是大佬教程为你收集整理的node.js – 比较MongoDB中的两个日期字段全部内容,希望文章能够帮你解决node.js – 比较MongoDB中的两个日期字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。