比较MongoDB中的两个日期字段

比较MongoDB中的两个日期字段,第1张

比较MongoDB中的两个日期字段

您不能将一个字段与具有正常查询匹配的另一个字段的值进行比较。但是,您可以使用聚合框架执行 *** 作

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

我在其中输入“您的其他常规查询”,因为您可以使该位使用索引。因此,如果您只想对该

name
字段所在的文档执行此 *** 作,则
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"), "modified" : 4, "sync" : 4, "name" : "charles" }{ "_id" : ObjectId("5202765e9bf0f0f3a6e4589f"), "modified" : 4, "sync" : 45, "name" : "charles" }{ "_id" : ObjectId("520276949bf0f0f3a6e458a1"), "modified" : 46, "sync" : 45, "name" : "charles" }

返回:

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

如果您想要更多字段,则需要将它们添加到中

$project



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5499369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存