我有一个MongoDbCollection ,包含284.116条推文.问题在于,某些对象中的"author"字段是对象类型,但其他对象中的"author"字段是数组类型.所以问题是我想过滤哪些是数组,哪些是对象.
例如:
{
"_id" : ObjectId("55edfbd11a87d41d987a6dc1"),
"tweet" : "Back in my dorm, yay!",
"uri" : "https://twitter.com/natalylug0/status/640994018529181696",
"date" : "2015-09-08 00:04:17",
"country" : "U.S.A.",
"city" : "Texas",
"state" : "Dallas",
"author" : {
"username" : "Nataly",
"uri" : "https://twitter.com/natalylug0",
"screenname" : "natalylug0"
}
}
另一个:
{
"_id" : ObjectId("55ee3a00e11fbb1030d659fe"),
"author" : [
{
"username" : "Relapsed Shini",
"uri" : "https://twitter.com/iPictoraL",
"screenname" : "iPictoraL"
}
],
"tweet" : "@zumbiezuza ???? ily zoeeeeeeee",
"uri" : "https://twitter.com/iPictoraL/status/641060812140900352",
"date" : "2015-09-08 01:29:42",
"country" : "U.S.A.",
"city" : "Texas",
"state" : "Dallas"
}
所以我执行了如下查询:
db.getCollection('tweets').find({ author: { $type: 4} })
我得到的是
Fetched 0 record(s)
但如果执行$type:3,我会得到284.116个值,这和这个集合的大小相同.
所以我的问题是,如何过滤"author"字段包含数组的对象.