A Simpler Solution
First find UserInstance from User Collection with given phone number.
db.user.find({phone: PhoneNumber})
Then find OrderInstances from Order Collection for that user.
db.order.find({user_id: userInstance._id})
Why Not To Use Populate
Populate is Mongoose library mehtod and not native MongoDb method. To make use of Populate you will have to define your schemas
accordingly.
var user = Schema({
_id: Schema.Types.ObjectId,
email: String,
phone: Number,
});
var order = Schema({
_id: Schema.Types.ObjectId,
item: String,
user_id: { type: Schema.Types.ObjectId, ref: 'user' }
});
If you define models like this and then use populate to find user orders. Then following steps occur:
Find all orders and Populate with users.
db.order.find().populate('user_id')
Filter orders for the user with phone number.
This is really inefficient as it is fetching all the orders every time and not using DB efficient queries.
Same will be the case with $lookup which is native to mongoDB.