如何在MongoDB中仅选择数字字符串?

让我们创建一个包含文档的集合-

> db.selectOnlyNumericDemo.insertOne({"UserId":"User101"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbdb711de8cc557214c0e16")
}
> db.selectOnlyNumericDemo.insertOne({"UserId":"102"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbdb716de8cc557214c0e17")
}
> db.selectOnlyNumericDemo.insertOne({"UserId":"User103"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbdb71dde8cc557214c0e18")
}
> db.selectOnlyNumericDemo.insertOne({"UserId":"104"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cbdb725de8cc557214c0e19")
}

find()方法的帮助下显示集合中的所有文档-

> db.selectOnlyNumericDemo.find().pretty();

这将产生以下输出-

{ "_id" : ObjectId("5cbdb711de8cc557214c0e16"), "UserId" : "User101" }
{ "_id" : ObjectId("5cbdb716de8cc557214c0e17"), "UserId" : "102" }
{ "_id" : ObjectId("5cbdb71dde8cc557214c0e18"), "UserId" : "User103" }
{ "_id" : ObjectId("5cbdb725de8cc557214c0e19"), "UserId" : "104" }

以下是仅选择数字字符串或在MongoDB中检查字符串是否为数字的查询-

> db.selectOnlyNumericDemo.find({'UserId': /^\d+$/});

这将产生以下输出-

{ "_id" : ObjectId("5cbdb716de8cc557214c0e17"), "UserId" : "102" }
{ "_id" : ObjectId("5cbdb725de8cc557214c0e19"), "UserId" : "104" }