gpt4 book ai didi

MongoDb 仅以数组形式返回特定字段(电话号码)

转载 作者:可可西里 更新时间:2023-11-01 10:24:23 26 4
gpt4 key购买 nike

我想以数组的形式从我的一个架构中查询并获取所有电话号码。

我的模式是

 var doctorSchema = new Schema({
profile: {
fullname: String,
gender: String,
email: String,
dob: Date,
contact:
{ mobile: String },
}
});

谁能帮助我如何只查询 contact.mobile 并将所有号码存储在一个数组中??

我尝试了 $map 但它不起作用。

最佳答案

您可以调用 distinct() 模型上的方法使用点符号来指定嵌入的文档字段。这将查询单个集合中指定字段的所有不同值,并在数组中返回结果:

var callback = function (err, result) {
if (err) { /* handle err */ };
console.log('unique mobile numbers', result);
};

Doctor.distinct("profile.contact.mobile", callback);

var query = Doctor.distinct("profile.contact.mobile");
query.exec(callback);

在 mongo shell 中,这相当于:

var mobilenumbers = db.doctors.distinct("profile.contact.mobile");

您还可以使用 map() promise 上的方法 从查询中返回,作为另一种在数组中获取结果的方法:

var promise = Doctor.find({ }).select("profile.contact.mobile").exec();
promise.then(function (results) {
var numbers = results.map(function (m) {
return m.profile.contact.mobile;
});
console.log(numbers);
}).then(null, function (err) {
console.log(err);
});

mongo shell 等效操作使用 map()光标方法如下:

var mobilenumbers = db.doctors.find({}, {"profile.contact.mobile": 1})
.map(function (m){
return m.profile.contact.mobile;
});

关于MongoDb 仅以数组形式返回特定字段(电话号码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com