var monk = require('monk'); var db = monk('127.0.0.1:27017/db');
var collection = db.get('content'); newscol.find({}, {}).then((data) => {console.log(data);})
Output:
[
{
_id: 1,
content: 'a b c d e f g h i j k l m n o p q r s t u v w x y z ',
},
{
_id: 2,
content: 'b c d e f g h i j k l m n o p q r s t u v w x y z',
},
{
_id: 3,
content: 'c d e f g h i j k l m n o p q r s t u v w x y z',
}
]
Tried to retrieve the data in a normal way.
But is there any way to retrieve only the first few words of the content as below?
[
{
_id: 1,
content: 'a b c d...',
},
{
_id: 2,
content: 'b c d e...',
},
{
_id: 3,
content: 'c d e f....',
}
]
I am trying to use the collection.aggregate but seems it doesn't help with the problem.
db.collection.aggregate([
{
$set: {
content: {
$reduce: {
input: { $slice: [ { $split: [ "$content", " " ] }, 4 ] },
initialValue: "",
in: {
$concat: [
"$$value",
{ $cond: [ { $eq: [ "$$value", "" ] }, "", " " ] },
"$$this"
]
}
}
}
}
}
])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.